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é megy
  • turtle.left(szög) – balra fordul (a szög fokban)
  • turtle.right(szög) – jobb fordul
  • turtle.circle(sugár) – kört rajzol
  • turtle.circle(sugár, szög) – körív (a szög fokban)
  • turtle.color("szín neve angolul") – színt beállít
  • turtle.color(vörös, zöld, kék) – színt beállít színkeveréssel, mindhárom összetevő 0 és 1 között
  • turtle.begin_fill() – kitöltött alakzat kezdete
  • turtle.end_fill() – kitöltött alakzat vége
  • turtle.up() – ceruzát felemeli
  • turtle.down() – ceruzát leteszi
  • turtle.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.