A „Turtle” aPythonelőre telepített könyvtára, ami lehetővé teszi a felhasználók számára képek és rajzok létrehozását úgy, hogy egy virtuális rajzfelülettel látja el a Python környezetet. A rajzhoz használt képernyő-tollat teknősnek hívják, innen a könyvtár neve. Ennek az az oka, hogy a Ateknős-könyvtár interaktív módon segít a kezdő programozóknak tesztelni a különböző alapvető programozási alapszerkezeteket mint pl. a ciklus, elágazás, eljárás.

A teknősbéka grafika kapcsán meg kell említenünk Seymour Papert nevét, aki matematikus a Massachusetts Institute of Technology-n, számítógéptudós, pszichológus és kiváló pedagógus volt. A mesterséges intelligencia kutatása úttörőinek és a Logo programozási nyelv megalkotóinak egyike.

A könyvtár elemeinek használata nagyon egyszerű, a parancsok felépítése egységes, mindegyik a turtle névvel kezdődik, majd ponttal elválasztva a konkrét parancs és a paraméterek.

turtle.right(90)
turtle.forward(100)

A leggyakrabban használt parancsokat az alábbi táblázatban láthatod:

A turtle graphic programok elején egységesen a következő lépéseket kell elvégezni:

– könyvtár importálása:

import turtle

– rajzolóablak létrehozása

ablak = turtle.Screen()

– rajzoló teknős létrehozása:

fred = turtle.Turtle()

Nem kötelező, hasznos további parancsok:

– háttérszín beállítása:

ablak.bgcolor(„white”)	- a parancs paramétere lehet színnév, vagy kód

– toll szín beállítás:

fred.pencolor(„black”)

– rajzolóablak méretezése:

ablak.setup (400,400)

– ablak címke beállítása:

ablak.title(„címke”)

Az alapokat összerakva, a programjaink első pár sora hasonlóan fog kinézni az alábbi példához:

import turtle
ablak = turtle.Screen()
ablak.setup(400,400)
ablak.bgcolor('white')
ablak.title("program_1")
fred = turtle.Turtle()

Teknősünk neve ’fred’ az ablaké pedig ’ablak’. Ezek az elnevezések szabadon választhatók, a többi elnevezés nem módosítható!

Első példaprogramunk egy 100 pixel oldalhosszúságú négyzetet rajzol:

import turtle
ablak = turtle.Screen()
ablak.setup(400,400)
ablak.bgcolor('white')
ablak.title("program_1")
fred = turtle.Turtle()

fred.fd(100)
fred.left(90)
fred.fd(100)
fred.left(90)
fred.fd(100)
fred.left(90)
fred.fd(100)
fred.left(90)

ablak.exitonclick()

Látható, hogy a rajzoló rész négyszer ismétli ugyan azokat a lépéseket. Ezt érdemes egy ciklussal megoldani!

A ciklus „fej” része bevezet egy ’i’ ciklusváltozót, és a range beállítja a négyszeri ismétlést. A további két sor az ún. ciklusmag, ami négyszer ismétlődik:

import turtle
ablak = turtle.Screen()
ablak.setup(400,400)
ablak.bgcolor('white')
ablak.title("program_1")
fred = turtle.Turtle()

for i in range(4):
    fred.fd(100)
    fred.left(90)

ablak.exitonclick()

Természetesen nem csak négyzetet tudunk a ciklussal rajzolni, hanem például ötágú csillagot is:

import turtle
ablak = turtle.Screen()
ablak.setup(400,400)
ablak.bgcolor('white')
ablak.title("program_3")
fred = turtle.Turtle()

for i in range(5):
    fred.fd(100)
    fred.right(144)

ablak.exitonclick()

A színek változtatásával érdekes geometriai ábrákat tudunk létrehozni! Ehhez a programhoz érdemes a háttérszínt feketére állítani (ablak.bgcolor('black')), illetve a rajzolás színét folyamatosan módosítani. Ehhez használhatjuk a python ’list’ függvényét, aminek segítségével a pencolor utasítás a listából veheti a színek megnevezését: colors = ['red', 'purple', 'blue', 'green', 'orange', 'yellow']

Annak érdekében, hogy a színeket sorban vegye a program a listából, alkalmazzuk az „i%6” műveletet, ami az ún. modulo függvény. Ez az i aktuális értékét osztja 6-tal, és a maradékot adja eredményként. Ez rendre 0,1,2,3,4,5.

import turtle
ablak = turtle.Screen()
ablak.setup(400,400)
ablak.bgcolor('black')
ablak.title("program_4")
fred = turtle.Turtle()

colors = ['red', 'purple', 'blue', 'green', 'orange', 'yellow']
t = turtle.Pen()

for i in range(180):
    t.pencolor(colors[i%6]) 
    t.width(i/100 + 1) 
    t.forward(i) 
    t.left(59)

ablak.exitonclick()

A lecke utolsó mintaprogramja koordináta rendszert rajzol. A program négy ciklusból áll, ezek egymás után rajzolják meg a négy síknegyed tengelyeit, és készítik el azok beosztását. Új parancs a programban a fred.write („ „) függvény, ami az adott pozícióba írja az idézőjelek közötti stringet.

import turtle

ablak = turtle.Screen()
ablak.setup(600,600)
ablak.bgcolor('white')
ablak.title("Coordinates")

fred = turtle.Turtle()
fred.pencolor("black")

fred.speed(0)

#tengelyek - beosztás
for x in range (12):
    fred.lt(90)
    fred.fd(20)
    fred.rt(90)
    fred.fd(5)
    fred.bk(5)
fred.penup()
fred.goto(0,0)

for x in range (12):
    fred.pendown()
    fred.fd(20)
    fred.lt(90)
    fred.fd(5)
    fred.bk(5)
    fred.rt(90)
fred.penup()
fred.goto(0,0)

for x in range (12):
    fred.pendown()
    fred.bk(20)
    fred.lt(90)
    fred.fd(5)
    fred.bk(5)
    fred.rt(90)
fred.penup()
fred.goto(0,0)

for x in range (12):
    fred.pendown()
    fred.rt(90)
    fred.fd(20)
    fred.lt(90)
    fred.fd(5)
    fred.bk(5)
fred.penup()

fred.goto(250,0)
fred.write("x")
fred.goto(0,250)
fred.write("y")
fred.goto(0,0)

ablak.exitonclick()

A forráskódok letölthetőek:

Folytatása következik…