Korpa je prazna: 0.00 Din.
U ovoj lekciji ću vam pokazati kako se u Python-u može nacrtati linija i to uz pomoć funkcije koja se naziva Turtle. U tom cilju je neophodno da se u program prvo ubaci odgovarajuća datoteka a ja sam to uradio na samom početku tj. u prvom redu programskog koda.
import turtle
Zatim sledi funkcija kojom se kreira tzv. ekran za crtanje pa ću zato upotrebiti funkciju screen i dodeliti joj promenjivu istog naziva.
screen = turtle.Screen()
Funkcija bgcolor mi omogućava da odredim boju pozadine koja će u ovom slučaju postati plava a primenom funkcije title ću postaviti odgovarajući naslov.
screen.bgcolor(blue)
screen.title(„Drawing Lines Practice“)
Pošto sada raspolažem sa dovoljnim brojem elemenata, ja ću sačuvati i pokrenuti ovaj program da bi se na ekranu odmah pojavio novi okvir sa plavom pozadinom i odgovarajućim natpisom.
Pošto je do sada sve ispalo baš onako kao što sam planirao, mogu da pređem na crtanje prve linije pa ću u tom cilju kreirati svoj prvi „turtle“. To se može postići kreiranjem promenjive my_turtle i pozivanjem funkcije Turtle.
my_turtle = turtle.Turtle()
Zatim mogu da pređem na crtanje linije i dodelim joj dužinu od 100 piksela.
my_turtle.forward(100)
Ako sada sačuvam i pokrenem ovaj program, na plavoj pozadini će se pojaviti tamna linija a ako obratite pažnju, primetićete da se na njenom desnom kraju nalazi mali trougao koji u predstavlja „olovku“ tj. alat kojim se vrši crtanje. Ukoliko vam se to ne dopada, možete primeniti funkciju shape i izabrati neki drugi oblik a ja ću iskoristiti priliku da umesto trougla postavim kružnicu.
my_turtle.shape(„circle“)
Ukoliko ponovo pokrenem isti program, primetićete da se na kraju linije sada nalazi drugačiji simbol što znači da je ova promena uspešno izvršena. Postoji čak i mogućnost da se ovaj element pretvori u stvarnu kornjaču ali ću se ja ipak zadržati na kružnom elementu.
my_turtle.shape(„turtle“)
Pošto sam uspešno nacrtao svoju prvu liniju, ne bi bilo loše da je učinim malo debljom. To se može postići primenom funkcije kojom se u stvari kontroliše veličina olovke a ja ću se ovom prilikom odlučiti za 5 piksela.
my_turtle.pensize(5)
Da bih proverio kako će se ova promena odraziti na grafički prikaz, ja ću sačuvati i pokrenuti program da bi se na ekranu pojavila nešto deblja linija na čijem kraju se nalazi mala kružnica.
Sada se postavlja pitanje, da li je moguće nacrtati liniju u nekom drugom pravcu? Da bih vam pokazao kako se radi, ja ću primeniti funkciju left jer mi ona omogućava direktno određivanje novog pravca. Ja ću izabrati ugao od 45 stepeni i zatim se pomeriti za još 100 piksela.
my_turtle.left(45)
my_turtle.forward(100)
Ako nakon toga sačuvam i pokrenem ovaj program, videćete da se na ekranu pojavila nova kosa linija koja ima tačno određenu širinu i dužinu. Na ovaj način je moguće nacrtati bilo kakvu formu a to uključuje i kreiranje segmenata koji ne sadrže nikakve linije. To se može postići primenom funkcije penup a da bih vam pokazao kako to izgleda u praksi, ja ću prvo primeniti pomenutu funkciju
my_turtle.penup()
a ako nakon toga preskočim korak u kome se vrši pomeranje olovke i ponovio „spustim“ olovku
my_turtle.pendown()
biću u prilici da dodam novi segment.
my_turtle.forward(100)
Da bih vam pokazao šta sam na ovaj način postigao, ja ću sačuvati i pokrenuti ovaj program da bi se na ekranu pojavile dve nepovezane linije. Ovakav efekat sam postigao naizmeničnom primenom funkcija za „podizanje“ olovke (penup) i pomeranje za određenu razdaljinu (forward), da bih nakon toga „spustio“ olovku (pendown) i konačno nacrtao novu liniju.
Ukoliko želite da liniju usmerite u suprotnom pravcu to možete postići primenom funkcije backward. Da bih vam pokazao kako to izgleda u praksi ja ću u ovaj program dodati još jedan red
my_turtle.backward(100)
a zatim ga sačuvati i pokrenuti. Kao što vidite, kružnica koja predstavlja vrh olovke se sada nalazi na suprotnom kraju kose linije što znači da sam je pomerio za 100 piksela unazad.
Sada kada znate kako se crtaju pojedinačni linijski segmenti, vreme je da to znanje primenite za nešto konkretnije a ja vam predlažem da to bude zvezda sa osam krakova. Da bi to postigli, potrebno da olovku postavite na sredinu ekrana i zatim nacrtate svih osam segmenata. Ja ne bih želeo da više puta ponavljam slične linije koda pa ću umesto toga primeniti petlju i pri tome iskoristiti opseg od 1 do 8
for x in range(0,8):
Nakon toga ću obrisati kod koji mi više nije potreban i zatim dodati prvi segment čija dužina iznosi 100 piksela, vrati se na početni položaj i okrenuti se za 45 stepeni.
my_turtle.forward(100)
my_turtle.backward(100)
my_turtle.left(45)
Ako nakon toga sačuvam i pokrenem ovaj program, na ekranu će se pojaviti željena forma što znači da sam uspešno obavio i ovaj zadatak.
Ukoliko ste završili sa crtanjem i ne želite više da koristite komandu Turtle, neophodno je da na kraj programa dodate izraz kojim se on prekida.
turtle.done()
Pored toga, ne bi bilo loše i da sakrijete simbol koji predstavlja četkicu, a to se može postići primenom funkcije hideturtle.
my_turtle.hideturtle()
Pre nego što dovršim ovu lekciju, ja ću još jednom sačuvati i pokrenuti ovaj program pa ćete i sami moći da se uverite u njegovu efikasnost.
