A „Turtle” aPython elő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 A teknő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.
Ha emlékeztek rá tavaly játszottunk különböző rajzoló programocskákkal, azokhoz hasonló lesz ez is.
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:
Minden esetben importálni kell a turtle-t ha rajzolni szeretnénk!
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()
Nincsenek megjegyzések:
Megjegyzés küldése