Turtle biblioteka sama po sebi ima dvije funkcije za osnovne geometrijske oblike circle(radijus) i dot(veličina), a obje rade to što im ime kaže. Za početak isprobajte što će iscrtati circle() i dot(). Ako nije drugačije definirano pretpostavlja se da će funkcija nacrtati lik na mjestu gdje se trenutno nalazi pero.
Cilj vježbe je napraviti niz funkcija za iscrtavanje geometrijskih oblika koje kasnije možemo koristiti za crtanje složenijih scena. Funkcije radite jednu po jednu i testirajte kako rade odvojeno. Na kraju bi svaku gotovu funkciju trebalo dodati u oblici.py kako bi se mogla koristiti kao modul za proširivanje bilo kojeg programa za crtanje. Kada ste gotovi vaš kod učitajte u Edmodo grupi (kao predaju datoteka, slično kao što smo radili na testu).
U nastavku imate primjer gdje se u datoteci oblici.py nalazi primjer već napravljene funkcije kvadspirala(širina,razmak) koja crta kvadratičaste spirale. U datoteci main.py se nalazi kod koji se direktno može izvršavati pritiskom na gumb Run i čiji će se rezultat vidjeti u dijelu prozora pod Result. Programiranje možete raditi direktno ovdje ili kod vas na računalu, s time da onda pripazite da su main.py i oblici.py u istoj mapi na računalu. Pojedini zadaci kreću ispod...
1. zadatak
Posloži linije koda kako bi dobio/la ispravnu funkciju koja radi sljedeće:
linija(px,py,kx,ky) - funkcija prihvaća koordinate početne točke i konačne točke te crta liniju između njih.
Svaka od kućica s lijeve strane sadrži jednu liniju koda koje kad se poslože u ispravnom redoslijedu (i s ispravnim uvlačenjem) daje ukupni kod za tu funkciju. Jednom kad misliš da je tvoje rješenje gotovo klikni na "Get feedback" gumb. Ako rješenje pozeleni tvoj redoslijed je točan, u suprotnom ćeš dobiti male savjete što nedostaje.
Jednom kad ste gotovi sa time tu funkciju treba u ispravnom obliku dodati u oblici.py a sa primjerom koda ispod možete provjeriti kako radi.
Primjer:
linija(-100,0,0,100)
linija(0,0,100,100)
linija(-100,50,100,50)
2. zadatak
Napiši kod funkcije koja bi dala sljedeće:
nterokut(duljina,n) - funkcija crta pravilni N-terokut (trokut, četverokut, peterokut, … N), tj. pravilan lik sa proizvoljnim brojem stranica većim od 2, a prihvaća duljinu stranice i njihov broj
Na sljedećoj poveznici se nalazi ispremješani kod za ovu funkciju: nterokut
Primjer:
nterokut(50,3)
pu()
fd(50)
nterokut(50,5)
back(50)
seth(180)
nterokut(50,7)
3. zadatak
Napiši kod funkcije koja bi dala sljedeće:
trapez(a,b,v) - funkcija crta jednakokračni trapez, a prihvaća duljinu duže i kraće stranice te visinu trapeza
Primjer:
trapez(180,100,60)
pu()
seth(0)
goto(30,20)
trapez(110,80,20)
Na sljedećoj poveznici se nalazi ispremješani kod za ovu funkciju: trapez
4. zadatak (opcionalni izazov)
Napiši kod funkcije koja bi dala sljedeće:
zvijezda(vanjski,nutarnji,n) - funkcija crta pravilnu zvijezdu (izvrnuti N-terokut), a prihvaća radijus vanjskih vrhova, radijus unutarnjih vrhova i broj vrhova.
Primjer:
for u in range(50,126,25):
zvijezda(100,u,5)
seth(0)