Turtle Grafika

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 31

Logo

Sedamdesetih godina prolog vijeka, postojao je mali

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()

Nakon pokretanja ovog programa primjetiete

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

Rezultat navedene naredbe

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

koja crta kvadrat, liniju po liniju, a rezultat izgleda ovako:

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

Crtanje kompleksnijih oblika


Osim operaciji TurnLeft ili TurnRight kornjaa ima i

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

Rezultat poligon sa 12 stranica

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

nacrta 20 krugova, sa tim da se svaki put pomjeri za 18 stepeni

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

You might also like