Professional Documents
Culture Documents
Turtle Grafika
Turtle Grafika
Turtle Grafika
ali moan programski jezik, zvani Logo, koji je koristila grupa istraivaa Njegova popularnost je izuzetno porasla osamdesetih meu ljudima svih generacija, dodavanjem Turtle grafike i kornjae koja je bila vidljiva na ekranu i reagovala na komande poput Move, Forward, Turn Right, Turn Left itd. Ovaj objekat omoguava crtanje interesantnih oblika na ekranu
SB Turtle
Small Basic sadri Turtle objekat sa brojnim
komandama koje mogu biti pozvane iz programa U ovom poglavlju emo koristiti taj objekt za crtanje grafike
Kornjaa
Za poetak uinimo kornjau vidljivom na ekranu
Ovo moemo postii naredbu Turtle.Show()
bijeli ekran, poput onog koji smo koristili u prethodnom poglavlju, osim to ovaj ima kornjau u sredini Ta kornjaa e pratiti nae naredbe i crtati zadate oblike
Turtle
Pomjeranje i crtanje
Jedna od instrukcija koje kornjaa razumije je Move
Ova operacija uzima broj kao ulaznu veliinu Ova broj govori kornjai koliko daleko da se pomjeri Sledea naredba e rei kornjai da se pomjeri za 100
koraka Turtle.Move(100)
Analiza
Kada pokrenete ovu naredbu, moete primjetiti da se
kornjaa pomjera polako 100 koraka unaprijed Dok se pomjera, primjetiete da za sobom ostavlja trag Kada koristite operacije nad turtle objektom, nije neophodno koristiti Turtle.Show() Kornjaa e automatski postati vidljiva im se za nju pozove neka od operacija
Crtanje kvadrata
Svaki kvadrat ima etiri stranice, dvije horizontalne i
dvije vertikalne Da bi nacrtali kvadrat trebalo bi omoguiti kornjai da nacrta liniju, skrene udesno i nacrta sledeu liniju, i nastavi ovaj postupak dok sve etiri ivice ne budu nacrtane
Program
Ako bi ovo preveli u program, on bi ovako izgledao
Turtle.Move(100) Turtle.TurnRight() Turtle.Move(100) Turtle.TurnRight() Turtle.Move(100) Turtle.TurnRight() Turtle.Move(100) Turtle.TurnRight()
Rezultat
Kada pokrenete ovaj program, moete vidjeti kornjau
Petlje
Vano je primjetiti da na ovaj nain etiti puta
ponavljate dvije iste komande Ve smo nauili da komande koje se ponavljaju moemo izvravati koristei petlje Ako uzmemo gornji program i izmijenimo ga na taj nain da koristi For..EndFor petlju dobiemo znaajno jednostavniji program
Kvadrat - verzija 2
For i = 1 To 4 Turtle.Move(100) Turtle.TurnRight() EndFor
Izmjena boja
Turtle za crtanje koristi isti grafiki prozor o kome smo
ranije govorili To znai da su sve operacije koje smo uili ranije validne i ovdje Na primjer, sledei program crta kvadrat sa razliito obojenim ivicama
Program
For i = 1 To 4 GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor() Turtle.Move(100) Turtle.TurnRight() EndFor
Rezultat
Turn operaciju Ova operacija uzima jedan ulaznu promjenljivu koja definie ugao rotacije Koristei ovu operaciju, mogue je nacrtati bilo koji pravilni poligon Sledei program crta heksagon (poligon sa est stranica)
Heksagon
For i = 1 To 6 Turtle.Move(100) Turtle.Turn(60) EndFor
Pravilni poligoni
Isprobajte navedeni program da bi provjerili rezultat
njegovog izvravanja Primjetite da poto je ugao izmeu stranica 60 stepeni, koristimo Turn(60) Za svaki jednakostranini poligon, ugao izmeu stranica dobijamo diljenjem broja 360 sa brojem stranica Zahvaljujui ovoj informaciji moemo da nacrtamo poligon sa bilo kojim brojem stranica
Program
sides = 12
length = 400 / sides angle = 360 / sides For i = 1 To sides Turtle.Move(length) Turtle.Turn(angle) EndFor
Analiza
Upotrebom navedenog programa moete nacrtati bilo
koji poligon, izmjenom promjenljive sides Ako bismo stavili sides=4, dobili bi kvadrat Stavljanje velikih vrijednosti, recimo 50, dovodi do toga da je taj poligon teko razlikovati od kruga
Krugovi
Koristei navedenu tehniku moemo rei kornjai da
Primjer
sides = 50 length = 400 / sides angle = 360 / sides Turtle.Speed = 9 For j = 1 To 20 For i = 1 To sides Turtle.Move(length) Turtle.Turn(angle) EndFor Turtle.Turn(18) EndFor
Analiza
Navedeni program ima dvije For..EndFor petlje, jednu
unutar druge Unutranja petlja (i=1 to sides) je slina programu za crtanje poligona i odgovorna je za crtanje krugova Spoljanja petlja(i=1 to 20) je odgovorna za malo pomjeranje kornjae nakon svakog crtanja kruga. Ovo govori kornjai da crta 20 krugova
Rezultat
Program daje sledei rezultat
Brzina
U navedenom programu omoguili smo kornjai da
ide bre podeavanjem brzine na 9 Ovo svojstvo moete podesiti na bilo koju vrijednost izmeu 1 i 10
Isprekidane linije
Moete rei kornjai da stane sa crtanjem koristei
PenUp operaciju To vam omoguava da pomjerate kornjau bilo gdje po ekranu bez crtanja linija Pozivanje operacije PenDown e rei kornjai da nastavi sa crtanjem Ovo se moe koristiti za dobijanje odreenih efekata, poput isprekidanih linija
Primjer
sides = 6 length = 400 / sides angle = 360 / sides For i = 1 To sides For j = 1 To 6 Turtle.Move(length / 12) Turtle.PenUp() Turtle.Move(length / 12) Turtle.PenDown() EndFor Turtle. Turn(angle) EndFor
Analiza
Ponovo, ova program ima dvije petlje
Unutranja petlja crta jednu isprekidanu liniju, dok
spoljanja govori koliko linija treba nacrtati U navedenom programu smo koristili 6 kao vrijednost promjenljive sides, pa smo na osnovu toga dobili isprekidani poligon
Rezultat