Metuljček

Napišite program za želvo, ki bo narisal metuljčka:

metuljcek

Mnogokotniki

Napišite funkcijo polygon(turtle, l, k), kjer je l dolžina stranice, k pa število kotov, ki nariše mnogokotnik. Narišite nekaj mnogokotnikov in razvrstite jih po zaslonu. Nekako takole:

mnogokotniki

Mnogokotniki v krogu

Če narišemo večje število poligonov in se zraven še malo obračamo okoli svoje osi, skoraj vedno dobimo kaj zanimivega. Npr., v prvi sliki sem razporedil 12 šestkotnikov, v drugi večje število krogov. V tretji so spet krogi, a sem hkrati želvo še malo premikal naprej. Spirala v četrti je sestavljena iz kvadratov, ki se povečujejo. Poskusite!

sestkotniki

krogi

krogi_premik

kvadrati_povecujejo

Tekmovanje želv

Pripravite tekmovanje želv. Naredite nekaj želv (npr. 10) in vse postavite na isto mesto na levi strani. Simulirajte tekmovanje z zanko tako, da v vsakem koraku vsaki želvi a) malo spremenite smer, recimo za naključno vrednosti med -10 in 10 stopnjami (vsaki želvi izberite drugačno vrednost) in b) želvo malo premaknite naprej. Če se zaleti ob rob zaslona, naj se odbije pod istim kotom, kot se je vanj zaletela - nekako tako, kot se žoga odbije od stene. Tekmovanje se zaključi, ko prva želva doseže desni rob slike. Pri meni je tekmovanje izgledalo takole:

tekmovanje_zelv

Brokoli

Želvica je zelo priljubljena za risanje fraktalov, saj dobimo zanimive slikice in hkrati vadimo rekurzijo. Enega takega bomo napisali tudi mi. Najprej napišite funkcijo, ki nariše takole hiško:

hisa

Razširite funkcijo, da poleg risanja hiške, rekurzivno pokliče samo sebe tako, da na strehi nariše novi hiški - na vsaki strani eno. Če se ta funkcija izvede do tretjega nivoja, dobimo:

brokoli3

Če ji pustimo dovolj korakov, dobimo takle brokoli:

brokolin

Zmajeva krivulja

Zmajeva krivulja je znan fraktal, ki ga ne bomo risali rekurzivno, ampak bomo uporabili prepisovalna pravila. Imamo 3 konstante F(premik naprej), +(obrat za 90°) in -(obrat za -90°) ter 2 spremenljivki X in Y. Začetni niz je FX. V vsakem koraku spremenljivki X in Y v nizu zamenjamo po pravilih: (X → X+YF), (Y → FX-Y).

Najprej si pripravite niz z navodili (F,-,+) in potem se enostavno sprehodite čez niz ter izvajate ustrezne komande.

Primer krivulje:

zmaj

Last modified: Tuesday, 23 April 2019, 12:22 PM