Post on 03-Apr-2018
7/28/2019 Turtle Grafika
1/31
7/28/2019 Turtle Grafika
2/31
Logo Sedamdesetih godina prolog vijeka, postojao je mali
ali moan programski jezik, zvani Logo, koji jekoristila grupa istraivaa
Njegova popularnost je izuzetno porasla osamdesetihmeu ljudima svih generacija, dodavanjem Turtlegrafike i kornjae koja je bila vidljiva na ekranu ireagovala na komande poput Move, Forward, Turn
Right, Turn Left itd. Ovaj objekat omoguava crtanje interesantnih oblika
na ekranu
7/28/2019 Turtle Grafika
3/31
SB Turtle Small Basic sadri Turtle objekat sa brojnim
komandama koje mogu biti pozvane iz programa
U ovom poglavlju emo koristiti taj objekt za crtanjegrafike
7/28/2019 Turtle Grafika
4/31
Kornjaa Za poetak uinimo kornjau vidljivom na ekranu
Ovo moemo postii naredbu Turtle.Show()
Nakon pokretanja ovog programa primjetietebijeli ekran, poput onog koji smo koristili uprethodnom poglavlju, osim to ovaj ima kornjauu sredini
Ta kornjaa e pratiti nae naredbe i crtati zadateoblike
7/28/2019 Turtle Grafika
5/31
Turtle
7/28/2019 Turtle Grafika
6/31
Pomjeranje i crtanjeJedna 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)
7/28/2019 Turtle Grafika
7/31
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
7/28/2019 Turtle Grafika
8/31
Rezultat navedene naredbe
7/28/2019 Turtle Grafika
9/31
Crtanje kvadrata Svaki kvadrat ima etiri stranice, dvije horizontalne i
dvije vertikalne
Da bi nacrtali kvadrat trebalo bi omoguiti kornjai danacrta liniju, skrene udesno i nacrta sledeu liniju, inastavi ovaj postupak dok sve etiri ivice ne budunacrtane
7/28/2019 Turtle Grafika
10/31
ProgramAko 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()
7/28/2019 Turtle Grafika
11/31
Rezultat Kada pokrenete ovaj program, moete vidjeti kornjau
koja crta kvadrat, liniju po liniju, a rezultat izgledaovako:
7/28/2019 Turtle Grafika
12/31
PetljeVano je primjetiti da na ovaj nain etiti puta
ponavljate dvije iste komande
Vesmo nauili da komande koje se ponavljajumoemo izvravati koristei petlje
Ako uzmemo gornji program i izmijenimo ga na tajnain da koristi For..EndFor petlju dobiemo znaajno
jednostavniji program
7/28/2019 Turtle Grafika
13/31
Kvadrat - verzija 2
For i = 1 To 4Turtle.Move(100)Turtle.TurnRight()
EndFor
7/28/2019 Turtle Grafika
14/31
7/28/2019 Turtle Grafika
15/31
Program
For i = 1 To 4GraphicsWindow.PenColor =
GraphicsWindow.GetRandomColor()Turtle.Move(100)Turtle.TurnRight()
EndFor
7/28/2019 Turtle Grafika
16/31
Rezultat
7/28/2019 Turtle Grafika
17/31
Crtanje kompleksnijih oblika Osim operaciji TurnLeft ili TurnRight kornjaa ima i
Turn operaciju
Ova operacija uzima jedan ulaznu promjenljivu kojadefinie ugao rotacije
Koristei ovu operaciju, mogue je nacrtati bilo kojipravilni poligon
Sledei program crta heksagon (poligon sa eststranica)
7/28/2019 Turtle Grafika
18/31
Heksagon
For i = 1 To 6Turtle.Move(100)Turtle.Turn(60)
EndFor
7/28/2019 Turtle Grafika
19/31
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 izmeustranica dobijamo diljenjem broja 360 sa brojem
stranica Zahvaljujui ovoj informaciji moemo da nacrtamo
poligon sa bilo kojim brojem stranica
7/28/2019 Turtle Grafika
20/31
Programsides = 12
length = 400 / sidesangle = 360 / sides
For i = 1 To sidesTurtle.Move(length)Turtle.Turn(angle)
EndFor
7/28/2019 Turtle Grafika
21/31
Rezultat poligon sa 12 stranica
7/28/2019 Turtle Grafika
22/31
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 dotoga da je taj poligon teko razlikovati od kruga
7/28/2019 Turtle Grafika
23/31
Krugovi Koristei navedenu tehniku moemo rei kornjai da
nacrta 20 krugova, sa tim da se svaki put pomjeri za 18stepeni
7/28/2019 Turtle Grafika
24/31
Primjersides = 50length = 400 / sidesangle = 360 / sides
Turtle.Speed = 9
For j = 1 To 20For i = 1 To sides
Turtle.Move(length)Turtle.Turn(angle)
EndForTurtle.Turn(18)
EndFor
7/28/2019 Turtle Grafika
25/31
Analiza Navedeni program ima dvije For..EndFor petlje, jednu
unutar druge
Unutranja petlja (i=1 to sides) je slina programu zacrtanje poligona i odgovorna je za crtanje krugova
Spoljanja petlja(i=1 to 20) je odgovorna za malopomjeranje kornjae nakon svakog crtanja kruga. Ovo
govori kornjai da crta 20 krugova
7/28/2019 Turtle Grafika
26/31
Rezultat Program daje sledei rezultat
7/28/2019 Turtle Grafika
27/31
Brzina U navedenom programu omoguili smo kornjai da
ide bre podeavanjem brzine na 9
Ovo svojstvo moete podesiti na bilo koju vrijednostizmeu 1 i 10
7/28/2019 Turtle Grafika
28/31
Isprekidane linije Moete rei kornjai da stane sa crtanjem koristei
PenUp operaciju
To vam omoguava da pomjerate kornjau bilo gdje poekranu bez crtanja linija
Pozivanje operacije PenDown e rei kornjai danastavi sa crtanjem
Ovo se moe koristiti za dobijanje odreenih efekata,poput isprekidanih linija
7/28/2019 Turtle Grafika
29/31
Primjersides = 6
length = 400 / sidesangle = 360 / sides
For i = 1 To sides
For j = 1 To 6Turtle.Move(length / 12)Turtle.PenUp()Turtle.Move(length / 12)Turtle.PenDown()
EndForTurtle. Turn(angle)
EndFor
7/28/2019 Turtle Grafika
30/31
Analiza Ponovo, ova program ima dvije petlje
Unutranja petlja crta jednu isprekidanu liniju, dokspoljanja govori koliko linija treba nacrtati
U navedenom programu smo koristili 6 kao vrijednostpromjenljive sides, pa smo na osnovu toga dobiliisprekidani poligon
7/28/2019 Turtle Grafika
31/31
Rezultat