Turtle Grafika

download Turtle Grafika

of 31

Transcript of Turtle Grafika

  • 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