Teknőcgrafika
Czirkos Zoltán · 2020.09.17.
Bevezető. A parancssor használata. Egyszerű, szekvenciális programok; teknőcgrafika, bemenet és kimenet kezelése.
A teknőcgrafikában nem koordinátákban, hanem lépésekben és forgásokban gondolkozunk. Az ábrát egy teknőc rajzolja meg, amely az alábbi utasításokat kaphatja:
- Sétáljon előre valamennyit (ilyenkor vonalat is húz),
- Forduljon balra vagy jobbra valahány fokkal,
- Emelje fel vagy tegye le a ceruzát (ettől függ, hogy húz-e vonalat, amikor sétál).
Mentsd el az alábbi programot teknoc.py
néven, hogy kipróbálhasd! (SEMMIKÉPPEN SEM turtle.py
néven, mert akkor nem fog működni!)
# teknőcgrafikát fogunk használni, a program elején kell
import turtle
# jobbra néz. piros kör
turtle.width(30)
turtle.color("red")
turtle.circle(100)
# ceruza fel, mozgás, ceruza le. fölfelé nézve marad
turtle.up()
turtle.forward(140)
turtle.left(90)
turtle.forward(70)
turtle.down()
# kitöltött, kék színű téglalap
turtle.width(1)
turtle.color("blue")
turtle.begin_fill()
turtle.forward(60)
turtle.left(90)
turtle.forward(280)
turtle.left(90)
turtle.forward(60)
turtle.left(90)
turtle.forward(280)
turtle.end_fill()
# ablak bezárására várunk, a program végén kell
turtle.done()
Ez a program megrajzolja a londoni metró logóját (nagyjából). A #
jelek után
rövid magyarázatok is szerepelnek. A rajzolás egységei:
- Előbb rajzol egy piros kört, 30-as vonalvastagsággal.
- Aztán fölemeli a ceruzát, elmozdul jobbra és le, a téglalap jobb alsó sarkába.
- Végül megrajzolja a kék téglalapot, amit ki is tölt.
A teknőc az utasításokat sorban hajtja végre. Köztük pedig mindig megőrzi az állapotát: arrafelé sétál, amerre legutóbb fordult, és olyan színnel rajzol, amit a legutóbb mondtak neki. A kitöltés befejezésekor kitölti azt a sokszöget (visszamenőleg), amit a kitöltés kezdetétől fogva bejárt útvonal határoz meg.
Az alábbi utasításokat kaphatja:
turtle.forward(hossz)
– előrefelé megy (negatív hossz = hátrafelé)turtle.backward(hossz)
– hátrafelé megyturtle.left(szög)
– balra fordul (a szög fokban)turtle.right(szög)
– jobb fordulturtle.circle(sugár)
– kört rajzolturtle.circle(sugár, szög)
– körív (a szög fokban)turtle.color("szín neve angolul")
– színt beállítturtle.color(vörös, zöld, kék)
– színt beállít színkeveréssel, mindhárom összetevő 0 és 1 közöttturtle.begin_fill()
– kitöltött alakzat kezdeteturtle.end_fill()
– kitöltött alakzat végeturtle.up()
– ceruzát felemeliturtle.down()
– ceruzát letesziturtle.speed(sebesség)
– rajzolás sebessége; 1 = lassú, 10 = gyors, 0 = késleltetés kikapcsolása
A Shell ablakban bármikor segítséget lehet kérni angol nyelven a help
szó beírásával.
Ez beírható önmagában is, vagy zárójelben megadható neki egy téma. Ha az import turtle
megvolt (akár a Shell ablakba beírva), utána:
>>> help Type help() for interactive help, or help(object) for help about object. >>> help(turtle.forward) forward(distance) Move the turtle forward by the specified distance. Aliases: forward | fd Argument: distance -- a number (integer or float) Move the turtle forward by the specified distance, in the direction the turtle is headed.