Kochova pahuljica
(0 korsinik/a gleda/ju temu) 

Kochova pahuljica


08.09.2013 | 20:26
Sin mi je u 7. razredu, iz fizike su spominjali fraktale i za zadaću je dobio konstruirati Kochovu pahuljicu. Dao sam si malo truda da mu objasnim kako isprogramirati funkciju za crtanje Kochove pahuljice u logou (s obzirom da je logo programski jezik kojeg su učili iz informatike u 6. razredu).

Pa za slučaj da nekom još bude trebalo, evo ovdje programa i rezultata... Koristili smo ACS Logo za Mac, ali program je vrlo jednostavan tako da bi trebalo bez modifikacija raditi na svakom logo interpreteru.

pu rt 45 fd 350 lt 45 pd
pahuljica 200

Define "stranica\[\[duljina\]\[if :duljina < 1 
\[
fd :duljina 
rt 60 
fd :duljina 
lt 120 
fd :duljina 
rt 60 
fd :duljina
\] 
\[
stranica :duljina / 3 
rt 60 
stranica :duljina / 3 
lt 120 
stranica :duljina / 3 
rt 60 
stranica :duljina / 3
\]\]\]

Define "pahuljica\[\[baza\]\[repeat 3 \[left 120 stranica :baza\]\]\]
Prilozi:
08.09.2013 | 20:37
Uočit ćete da je procedura "stranica" - rekurzivna, što je razlog da je sam program tako jednostavan i kratak. Ova procedura crta jedan od tri poteza pahuljice na način da, ako je zadana duljina toliko malena da više nema smisla usitnjavati, onda nacrta najsitniji potez (ravno, pa desno, pa natrag lijevo i opet ravno). Ako je zadana duljina dovoljno velika, podijelimo je sa tri i rekurzivno pozivamo istu proceduru 4 puta (ravno, desno, lijevo, opet ravno).
08.09.2013 | 20:43

Datoteka za prilog:

Naziv datoteke: Koch-0a2bfa93482e786c7888fc16f7341836.zip
Veličina datoteke: 135022
05.03.2014 | 19:30
SLIKA.png

Datoteka za prilog:

Naziv datoteke: Kochova_pahulja.zip
Veličina datoteke: 35384
05.03.2014 | 19:30
KOD

Datoteka za prilog:

Naziv datoteke: Kochova_pahulja_kod.zip
Veličina datoteke: 3021

Evo ga, i ja sam probao napraviti u C jeziku. Kako u zadnje vrijeme učim C, mislio sam nešto konkretno napraviti, i sjetio sam se da je bila tema u vezi kochove krivulje. Pa eto rekoh, da pokušam, ali bez gledanja u druge radove. I tako počeo sam čitati na wikipediji o kochovoj krivulji, gdje je elegantno opisana konstrukcija, koristeći Lindenmayerov sustav. Iako sam znao da je ovo dušu dalo za primjer rekurzije, pokušao sam napraviti u obliku iteracije gdje se pravilo F - F + + F - F ponavlja ali s drugačijim predznakom ovisno o iteraciji. Znači trebalo je napisati funkciju koja će predvidjeti predznak skupa ovisno o iteraciji, ali onda sam shvatio da će ta funkcija biti izvedena u rekurziji, pa sam odmah odustao od tog pristupa jer bi bila prekomplicirana i vrlo vjerovatno nerazumljiva. Tako da sam na kraj napravio u rekruzivnom obliku gdje najprije započinje s pravilom, odnosno s početnom fazom F + + F + + F, a F funkcija prima kao argument broj iteracija.U funkciji F linija se ocrtava tek kada je iteracija 0, jer tada smo došli do kraja "propadanja", a ako iteracija nije nula, onda se poziva ista funkcija F unutar nje same(rekurzija), odnosno poziva se pravilo F - F + + F - F. Shvatio sam da je duljina jedne stranice u prvoj iteraciji jednaka trećini jedne stranice jednakostraničnog trokuta u početnoj fazi, znači da se početna duljina dijeli na 3^n, gdje je n broj iteracija.

To je sve u vezi konstrukcije, a sada malo o izvedbi...
Za grafiku koristim OpenGL, koji je na OS X-u integriran, a za hendlanje prozora koristim GLFW. Na početku sam mislio koristiti GLUT koji je isto integriran ali onda sam negdje pročitao da su ga na OS X 10.9 izbacili(neka me netko ispravi ako sam u krivu), kasnije sam mislio koristiti freeGLUT ali on je baziran na x11 koji je izbačen na OS X 10.8, tako da sam na kraju izabrao GLFW.

GLFW,GLUT i freeGLUT su biblioteke samo za hendlanje prozora i inputa, tako da nemaju ni funkciju za crtanje teksta, kao ni OpenGL koji je orijentiran samo za grafiku na razini hardvera, tako da sam trebao koristit neku biblioteku za rendiranje fonta, ali onda sam se sjetio onih reklamnih LED tekstova koji se vrte u krug, pa sam pomislio ako mogu ocrtati točkicu onda mogu i ispisati slovo, jer mi samo treba malo teksta za otisnuti, i ništa fensi. Slova sam napravio, kao dvodimenzionalni niz char slovo [37,36], gdje prvi predstavlja znak, znači ima 37 znakova, a drugi predstavlja matricu 5 x 7 za otisnuti točkice(stavio sam kvadrat jer bolje izgleda) koje predstavljaju znak(ako je 0 preskoči,ako je 1 ocrtaj), a redni brojevi znakova su pohranjeni u varijabli IDslovo, pozicija znaka u IDslovo je jednaka poziciji u varijabli slovo.

Ako netko želi kompajlirati kod, treba skinuti GLFW http://www.glfw.org/ i CMAKE http://www.cmake.org/cmake/resources/software.html.GLFW otpakirati i u terminalu doći do direktorija(komanda cd) gdje se nalazi otpakirani folder i upisati naredbu
cmake .
,i zatim
sudo make install
(pitat će lozinku).I sad se može kompilirati kod. Napravio sam Makefile(za automatizaciju kompajliranja), tako da samo treba u terminalu doći do direktorija Kochova_pahulja i upisati komandu
make
.
Moderatori: Bertone
  • Stranica:
  • 1

Vikalica™

Zadnja poruka: pred 1 dan, 1 sat
  • Yonkis: Hvala Kile, vidi ovdje [link]
  • Kile: Za sve koje koriste Apple Watch od sada HT nudi multi sim tako da sat radi bez iPhona ako ima cellular opciju.
  • Yonkis: 18.3.2 verzije su dostupne kao i 15.3.2 za Sekvoju
  • kupus: eh moj dream, mislim da si fulao forum
  • dpasaric: Evo stiže tuce za tebe, cijena sitnica! :)
  • smayoo: Davore, pa to je prava prilika. Naruči mi odmah 10 komada. :P
  • smayoo: mislim da ne
  • dreaMMAster: Jel ima na forumu generalna tema o novom M4 Airu?
  • dpasaric: :)
  • dpasaric: Mac Studio u top konfiguraciji nešto preko 15.000 € PDV
  • dpasaric: Stigle CTO cijene za MacBook Air 15" M4 u Voćarnu... ostalo će ovih dana!
  • Yonkis: Kako instalirati Apple Sports app ako imam na svom hrv acc eura?
  • Yonkis: Raid? Za komarce? Za Siri?
  • drlovric: @Yonkis: Sad marketing timovi vec rade na strategiji "Kupite novi iPhone raid Nove Siri" :) Kao sto su se ljudi upecali na Apple inteligenciju, koja niti dan-danas ne radi niti jednu jedinu korisnu i uporabljivu stvar.
  • Yonkis: Look how they massacred my boy [link]
  • kupus: sad se ne može upaliti, nema ni jabuke pri paljenju. rip imac
  • kupus: nisam ni ja gasio svoj imac. neki dan, nakon budjenja iz sna, radio je 5 minuta. poslije toga screen "flickering" pa se ugasio.
  • Ender: @hal9000: mislim da nema smisla ni potrebe za takvom anketom. jer Mac se ne restartuje, osim kad budu neki update-i sistema, al to je redovno odrzavanje :)
  • Ender: @ZoPaj: toliko cesto? :) podseti me na mog kolegu sa studija kad je rekao - ja menjam devojke kao carape, 2 puta u godinu dana :)
  • Yonkis: @zopaj ima travel-sickness, ne podnosi vožnju? :)
  • ZoPaj: ja restartam često, dva tri put godišnje.. a kad ga vozim na more ugasim ga skroz ;)
  • hal9000: @Ender - Mogli bi predložiti jabučnjaku da stave anketu tipa "Kad ste zadnji put restartali svoj mac" :D
  • hal9000: @borisone Ne fali kontekst. Sjećam se kada sam ga zadnji put restartao, samo je bilo davno pa ne mogu procjeniti. A nemam preko 6 banki. Nisam boomer. :P
  • Borisone: Fali kontekst. Ako hal9000 ima preko šest banki taj "tako davno" moče biti i jučer. :-)
  • Ender: @hal9000: tako sam nesto i pretpostavio :)
  • hal9000: @Ender Nemam pojma! Toliko davno je to bilo da se ne mogu ni sjetiti! :D
  • Borisone: Novi Mac Studio, MacBook Air, iPad Air i iPad.
  • Borisone: Toliko najava ovaj tjedan a vikalica šuti.
  • Lihto: Its Been 84 Years XD
  • Ender: @hal9000: posle koliko vremena je bio taj restart?
  • hal9000: Danas sam restartao Mac! :O
  • kupus: @yonkis :D
  • ping: Pa HR koristi samo Skype. Ne bi to znao da to svaki put ne naglase. Ptrm skype iz Rima, putem skype iz Bruxellesa…
  • Yonkis: Ako ništa ostao je kao sinonim za online video call :) barem za sada, za neke.
  • Zdravac: ...Skype je izgubio smisao, kao i bilokakav interes za borbu sa konkurentima
  • Zdravac: vjerojatno ne, ali eto, malo nostalgije, iako je to već dugo vremena bilo izgledno, od kada su puno toga iskoristili za Teams...
  • smayoo: zar to itko još koristi?
  • Zdravac: Skype se gasi u svibnju! RIP :(
  • Yonkis: iPad 10th gen se izgubio pa psuješ ili..? :)
  • kupus: traži se ipad 10th gen, PM
  • hal9000: Hihihihihihihi: [link]
  • Zdravac: jura22, s obzirom na cijene rada, bravar mu je kod nas najskuplje rješenje
  • jura22: Daj bravaru da napravi. Jedan taj je malo jeftiniji od MP1.1.
  • kupus: [link]
  • kupus: Ako ne nadjes, 3d print je ok rjesenje
  • dpasaric: [link]
  • dpasaric: Nabavi ove nove koji mogu prihvatiti i nove velike diskove, nisu strašno skupo:
  • dpasaric: Teško da će ti to ikada itko imati viška! :)
  • ^SuperUnknown^: Ekipa, ima li tko viska HDD sledova za MacPro 2009-2012 (4,1-5,1)? :)
  • Zdravac: MB Air M1

Za vikanje moraš biti prijavljen.

Prijava

Prisutni jabučari

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Komentari

Anketa

Koji Mac koristite?

Page Speed 1.07 Seconds

Provided by iJoomla SEO