Kochova pahuljica
(1 korsinik/a gleda/ju temu) (1) Gost

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 3 sati, 46 minuta
  • ZoPaj: iPhone Book i iPhone Book Neo
  • Yonkis: Preklopni iPhone, bit će kad tad, samo kako će se zvati? [link]
  • Yonkis: Apple prvih 50 godina [link]
  • Bertone: MA pusti ga, cendra bez veze, da mu je bilo bitno probudio bi se u pet :D
  • Djuro genijalac: A jbg, sori
  • Yonkis: Baš hvala na spoileru. I to ne na Alfi.
  • Djuro genijalac: Dvostruka pobjeda Mercedesa! Opet runda za sve!
  • Djuro genijalac: I ja dam napraviti od jabuka iz vrta, ali to potraje do Božića, maks, ako je dobar urod
  • smayoo: Mi od šogoricinih jabuka iz Požege :)
  • Djuro genijalac: Koji? I ja pijem sok od jabuke. U pravilu onaj iz Lidla 100% kojeg miješam s vodom pola-pola
  • smayoo: Ja ću jedan sok od jabuka, prirodni, mutni. :)
  • Djuro genijalac: Kaj pije jabučnjak? Ja plaćam rundu!
  • Djuro genijalac: Mercedes 1-2 u kvalifikacijama Melbournea!
  • Ender: ranije sam vidjao da linus koristi intel- MB Air. meni je to bilo dovoljno.
  • dpasaric: Linus voli popljuvati Apple, često i opravdano, ali kada on nešto hvali, znači da su zaista odradili dobar posao...
  • hal9000: E da sam i ovo doživio: [link]
  • Performita: Vikalica je još uvijek jednako cool kao prije! Osobito smajlići :)
  • dpasaric: Ma i to isto, ali to će valjda s novim HomePodima i s navodnim HomePadom...
  • zvone: Gdje je novi Apple TV? Nikako da stigne.
  • dpasaric: Javit ću cijene čim ih dobijemo...
  • Borisone: U Italiji Neo kreće od 699 EUR. Kod nas može biti samo više, pretpostavljlam standardnih 70-100 EUR
  • dpasaric: Osvrt na novotarije je na naslovnici, pa slobodno komentirajte!
  • Yonkis: Jeftin u USA, za studoše osnovni Neo je 500$ a koliko će biti kod nas? A tek onaj sa TouchIDom?
  • cavarovobrdo: Očekivao sam vrišteće boje iMac G3. Nekako mi je NEO uređaj za mlađariju, zato veselo. Rado se sijećam svog MacBook black plastenjaka :)
  • drlovric: Meni je Neo bas cool.....kao nekada plasticni Macbook. jeftinij je nego iPhone i odlicna ulaznica u Mac svijet.
  • invictus: Neo? Svašta oni sebi dozvole.
  • accom: ništa od boje ajvara.
  • Yonkis: [link] - Neo? Stvarno Apple, Neo?
  • Borisone: U oglasniku ako nekoga zanima MacBook Air M4 16/512
  • Air: Nadam se ne onaj kupvni crveni nego onaj domaći neodređeno narančasti :)
  • smayoo: Ja već godinama pišem u Apple i pitam kad će napraviti MBP u boji ajvara. :o)
  • cariblanco: Ja kupujem novi MacBook, samo ako ima ponuda u naranđastoj boji
  • cavarovobrdo: Hoće li novi MacBook biti od plastike u bojama sladoleda? Jedva čekam kupit jedan da mi se slaže s majicom ;)
  • drlovric: Idem na 14" sada. Vjerojatno cu zadrzati oba neko vrijeme. M1 Pro radi ko grom.
  • drlovric: Ma dobio neke pare pa moram ih namjenski utrositi na MBP.
  • invictus: Lovriću, čemu to? Jel te ne služi dobro M1 Pro?
  • drlovric: Davore uzimam 14" MBP Pro CTO. Proslijedi molim te cjenike kada dobijes. Tnx
  • invictus: Jebote led, pokidali su sa tih 512GB. :D :D :D
  • VanjusOS: sad baš gledam. Macbook air M5 kreće sa 512gb SSD, vau!
  • invictus: Ma nema eventa, samo su to sve novo ubacili na svoje stranice..
  • VanjusOS: ima li nekakvo predstavljanje, event? može link
  • invictus: A sutra ima je glavno, predstavljanje jeftinog Macbooka Neo..
  • invictus: @dpasaric - oba monitora su 27"
  • invictus: Bili su 999$, sada je 1099$.
  • invictus: Ali su i digli cijenu za 100$, sada je početni model 1099%
  • invictus: Nisu me sa ničim oduševili, jedino pohvalno koliko vidim da Air počinje sada sa 512GB SSD, ostalo samo blagi refreš..
  • dpasaric: Banana totalna, opet nude samo mali 27" model?!?!
  • ZoPaj: novi monitori, mislio sam;)
  • ZoPaj: evo ih… apple.com
  • smayoo: :D

Za vikanje moraš biti prijavljen.

Prijava

Novo na Jabučnjaku

Teme

Poruke

Komentari

Anketa

Koji Mac koristite?

Page Speed 0.62 Seconds

Provided by iJoomla SEO