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.
Esimerkki 1.
Paina Run ja katso, mitä tapahtuu.
Ruudulla liikkuvan olion liikettä, sen väriä ja muun muassa sen tuottamaa tekstiä ohjaillaan aika suppealla määrällä eri komentoja. Käydään niitä läpi seuraavissa esimerkeissä ja välitehtävissä. Kattavampi luettelo komennoista löytyy muun muassa täältä.
Välitehtävä 1.
a) Tuo turtle-kirjasto käyttöön.
import turtle
b) Luo itsellesi olio ja anna sille nimi.
nimi = turtle.Turtle()
b) Luo oliolle myös muoto ja väri.
nimi.shape("haluttu muoto listasta")
nimi.color("väri englanniksi")
Oliota voi liikuttaa eteen- ja taaksepäin sekä kääntää seuraavilla komennoilla. Oletuksena olio lähtee liikkeelle näytön keskeltä ja katsoo oikealle.
Yllä oleville komennoille on myös lyhenteet:
nimi.fd(p)
nimi.bk(p)
nimi.lt([[$\alpha$]])
nimi.rt([[$\alpha$]])
Välitehtävä 2.
Kokeile liikutella luomaasi oliota yllä olevilla komennoilla.
Välitehtävä 3.
Kokeile 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.
Esimerkki 2.
Välitehtävä 4.
Ohjelmoi olio menemään pisteeseen (100,100) ja palaamaan takaisin origoon.
Esimerkki 1.
Paina Run ja katso, mitä tapahtuu.
Ruudulla liikkuvan olion liikettä, sen väriä ja muun muassa sen tuottamaa tekstiä ohjaillaan aika suppealla määrällä eri komentoja. Käydään niitä läpi seuraavissa esimerkeissä ja välitehtävissä. 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") |
Välitehtävä 1.
a) Tuo turtle-kirjasto käyttöön.
import turtle
b) Luo itsellesi olio ja anna sille nimi.
nimi = turtle.Turtle()
b) Luo oliolle myös muoto ja väri.
nimi.shape("haluttu muoto listasta")
nimi.color("väri englanniksi")
Oliota voi liikuttaa eteen- ja taaksepäin sekä kääntää seuraavilla komennoilla. Oletuksena olio lähtee liikkeelle näytön keskeltä 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$]])
Välitehtävä 2.
Kokeile liikutella luomaasi oliota yllä olevilla komennoilla.
Välitehtävä 3.
Kokeile 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() |
Esimerkki 2.
Välitehtävä 4.
Ohjelmoi olio menemään pisteeseen (100,100) ja palaamaan takaisin origoon.
Tehtävät
Muista kirjoittaa ennen jokaista tehtävää aloituskomennot
import turtle
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?