Turtle 1. tunti
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ä.
Harjoitus 1.
Avaa linkki http://pythonsandbox.com/turtle uuteen välilehteen.
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.
Yllä oleville komennoille on myös lyhenteet:
nimi.fd(p)
nimi.bk(p)
nimi.lt([[$\alpha$]])
nimi.rt([[$\alpha$]])
Harjoitus 2.
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.
Harjoitus 3.
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.
Tehtävät
Tee tehtävät avaamalla sivu http://www.pythonsandbox.com/turtle uudessa välilehdessä.
Kirjoita ennen jokaista tehtävää aloituskomennot
Kirjoita ennen jokaista tehtävää aloituskomennot
import turtle
olion nimi = turtle.Turtle()
1. Piirrä suorakulmio, jonka leveys on 100 pikseliä ja korkeus 50 pikseliä.
2. Piirrä tasasivuinen kolmio, jonka sivun pituus on 80 pikseliä. Tasasivuisen kolmion kaikki kulmat ovat yhtä suuria.
3. Piirrä alla oleva kuvio.

4. Lähde liikkeelle origosta ja liiku pisteisiin (50,50), (-50,50), (50,-50), (-50,-50) ja palaa takaisin origoon. Minkälainen kuvio muodostuu?
5. Mene pisteeseen (-72, 80).
Käänny oikealle 90 astetta.
Mene eteenpäin 100 pikseliä.
Käänny vasemmalle 90 astetta.
Kulje eteenpäin 72 pikseliä.
Käänny vasemmalle 90 astetta.
Kulje eteenpäin 20 pikseliä.
Mihin päädyt?
1. Piirrä suorakulmio, jonka leveys on 100 pikseliä ja korkeus 50 pikseliä.
2. Piirrä tasasivuinen kolmio, jonka sivun pituus on 80 pikseliä. Tasasivuisen kolmion kaikki kulmat ovat yhtä suuria.
3. Piirrä alla oleva kuvio.
4. Lähde liikkeelle origosta ja liiku pisteisiin (50,50), (-50,50), (50,-50), (-50,-50) ja palaa takaisin origoon. Minkälainen kuvio muodostuu?
5. Mene pisteeseen (-72, 80).
Käänny oikealle 90 astetta.
Mene eteenpäin 100 pikseliä.
Käänny vasemmalle 90 astetta.
Kulje eteenpäin 72 pikseliä.
Käänny vasemmalle 90 astetta.
Kulje eteenpäin 20 pikseliä.
Mihin päädyt?