Turtle

Turtle on Pythonin laajennus, jolla voi luoda graafista sisältöä. Graafisen sisällön luominen perustuu olioon, joka liikkuu ruudulla ja piirtää ruudulle jäljen.


Alla on lueteltuna muutamia komentoja olion muokkaamiseen ja liikuttamiseen. Kattavampi luettelo komennoista löytyy muun muassa täältä.

Komento Merkitys Esimerkki
import turtle Tuodaan turtle-kirjasto käyttöön.
Tällä komennolla aloitetaan kaikki turtle-ohjelmat.
 
nimi = turtle.Turtle() Luodaan muuttuja (olio), jota komennoilla ohjaillaan. kilppari = turtle.Turtle()
nimi.shape("haluttu muoto") Annetaan oliolle jokin muoto. Muoto voi olla arrow, turtle, circle, square, triangle tai classic. kilppari.shape("turtle")
nimi.color("väri") Annetaan oliolle ja sen jättämälle jäljelle jokin väri. Väri voi olla kirjoitettuna englanniksi tai se voi olla html-värikoodi. kilppari.color("red")

Harjoitus 1.

Avaa linkki http://pythonsandbox.com/turtle uuteen välilehteen. 

  • Tuo turtle-kirjasto käyttöön import turtle komennolla.
  • Luo itsellesi olio ja anna sille nimi.
  • Luo oliolle haluamasi muoto.
  • Luo oliolle haluamasi väri.

Oliota voi liikuttaa eteen- ja taaksepäin sekä kääntää seuraavilla komennoilla. Oletuksena olio lähtee liikkeelle näytön keskeltä (koordinaatit (0,0)) ja katsoo oikealle.

Komento Merkitys Esimerkki
nimi.forward(p) Olio liikkuu p pikseliä siihen suuntaan, johon se parhaillaan osoittaa. kilppari.forward(200)
nimi.backward(p) Olio liikkuu p pikseliä taaksepäin siitä suunnasta, johon se parhaillaan osoittaa. kilppari.backward(200)
nimi.left([[$\alpha$]]) Olio kääntyy myötäpäivään [[$\alpha$]] astetta. kilppari.left(90)
nimi.right([[$\alpha$]]) Olio kääntyy vastapäivään [[$\alpha$]] astetta. kilppari.right(180)

Yllä oleville komennoille on myös lyhenteet:

nimi.fd(p)
nimi.bk(p)
nimi.lt([[$\alpha$]])
nimi.rt([[$\alpha$]])

Harjoitus 2.

  • Tutki ensin alla olevaa koodia ja päättele, mitä olio tekee kullakin komennolla.
  • Kokeile seuraavaksi mitä tapahtuu, kun kopioit alla olevat komennot editoriin.

import turtle
kilppari = turtle.Turtle()
kilppari.shape("turtle")
kilppari.color("red")

kilppari.forward(100)
kilppari.left(90)

kilppari.forward(100)
kilppari.left(90)

kilppari.forward(100)
kilppari.left(90)

kilppari.forward(100)


Näyttö, jolla olio seikkailee, koostuu siis pikseleistä. Jokaisella pikselillä on (x, y)-koordinaatti kuten meille tutussa xy-koordinaatistossa. Näytön keskikohdan koordinaatit ovat (0, 0).

Olio liikkuu tutussa xy-koordinaatistossa, vaikka x- ja y-akseleita ei näy.

Komento Merkitys Esimerkki
nimi.goto(x,y) Olio liikkuu nykyisestä olinpaikasta pisteeseen (x,y). kilppari.goto(50,-100)
nimi.home() Olio liikkuu pisteeseen (0,0). kilppari.home()

Harjoitus 3.

  • Ohjelmoi olio menemään pisteeseen (100,100) ja palaamaan takaisin origoon.