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 5 dana, 22 sati
  • VanjusOS: jel treba netko Thunderbolt kabl 2m, original apple naravno - nek mi se javi
  • Yonkis: Uf, teško pitanje, tko zna što je otišlo, kvrcnulo. Sigurno neki konektor, kabel. Otvori post u forumu pa ćemo razglabati.
  • markoveic: upomoc. Air M2, ekran udaren, pa crte, pa mrak. Na vanjskom sve radi. Dali mi se isplati zamjena s obzirom na bazni model? Koliko jeftino mogu proci?
  • iAnte: Ima li netko iskustva sa zamjenom USB porta na 15 pro? iStyle kaže da mijenja cijelu matičnu ploču, a vidim da se sam USB port prodaje na iFixit. Kako rade zamjenski dijelovi, stoji li u postavkama poruka da je instaliran zamjenski dio?
  • Riba: $49, one time.
  • VanjusOS: koliko se plaća RetinaRelay, vidim da je 7 dana free trial?
  • CoffeePod: Drugi link guglaj samo RetinaRelay
  • Pongy75: Sony i ekipa uskoro na aparatima, ako već i nisu. Pohlepa se na kraju obije u glavu… Masovni izlazak portova igara za gotovo sve PS generacije, a ovo je tek početak. [link]
  • VanjusOS: Drugi link ne mogu otvoriti
  • CoffeePod: Radi nevjerojatno dobro
  • CoffeePod: I koristis jednu od ove dvije aplikacije
  • CoffeePod: [link]
  • CoffeePod: [link]
  • CoffeePod: USB kabel, ili thunderbolt kabel (na drugom kraju koristis konverter Thunderbolt 2 na C npr)
  • VanjusOS: kako spajate iMac kao dodatni monitor, sa kojim uređajem spajate? Macbook ili nešto drugo?
  • Riba: Ja bacio oko na brzinu na Vinted, ima novih u kutiji za 50 eura i polovni za 40tak.
  • vodka29: Dodatno, ako netko ima dodatnu ideju kako produžiti život Apple Thunderbolt displayu, javite :D
  • vodka29: Pogledam, hvala.
  • CoffeePod: Mislim da sam vidio da čak ima. Al evo gledam ima ih i po eBayu u UK i nizozemskoj za 50-70€
  • vodka29: "Narucio preko Vinteda iz Rumunjske" ima li još koji na lageru? :D
  • CoffeePod: Ali Thunderbolt 2 nam treba da maknemo latency (RetinaRelay super app al je 40$)
  • CoffeePod: Inace, probali OpenDisplay app i uredno iMac radi kao eksterni ekran :)
  • CoffeePod: Narucio preko Vinteda iz Rumunjske
  • vodka29: Kupujem Thunderbolt 1 ili 2 kabel, Zagreb idealno.
  • Riba: Srecom imam jedan ali mi treba za vanjski disk.
  • Riba: CoffeePod, uh, sretno. To je bas unobtanium ili po suludim cijenama na ebayu.
  • CoffeePod: Ima netko za prodati Thunderbolt 2 kabel?
  • Yonkis: Sjeća li još netko OS 1.0 [link]
  • dpasaric: HomeView brzinski osvrt na naslovnici!
  • Yonkis: Možda imaš tonu mailova i još ih nije “prožvakao”?
  • drlovric: Ma ne radi nista vjeruj mi. Sprdacina od asistenta. Ljudi u EU su spasili sto to nemaju. Jedino sto zna malo bolje fotografije pretrazivati. To sam primjetio.
  • Yonkis: drlovric - a na kojem jeziku pričaš? Jesi probao Yoda načinom/govorom?
  • drlovric: Siri nije nu stanju pronaci jedan jedini email iz Apple Mail app. Ovo kontekstualno preseravanje su ciste lazi i obmane. Glupa je kao i ranije, samo HW zahtjevnija sto nam generira skuplje uredjaje.
  • Borostef: Ali od HomeView-a nista do daljnjeg u EU
  • Yonkis: Sam Tucker je to odlično pojasnio, kako je iPad Mini imao intimne odnose sa raznoraznim Apple uređajima [link]
  • drlovric: AppleTV skuplji duplo jer ima Siri. Zvucnik 50% poskupio jer je sad kao pametniji :P Siri i pamet. Mos misliti…
  • drlovric: I sve uredjaje poskupili na ime Siri AI. Vec vidim nove sudske procese. Nista nisu naucili iz onog Appme intelligence fijaska :)
  • Piko: to i je iPad "nano" zalijepljen na HomePod ...
  • drlovric: Ovo bi sve mogao raditi iPad, samo da zele to omoguciti. To mi je nekakav prvi dojam.
  • drlovric: Stigao nam HomeView :)
  • Djuro genijalac: Eto, i to se događa (koji click-bait..! LOL)
  • Djuro genijalac: [link]
  • Riba: Skinuo, tnx!
  • Soffoklo: Odličan app koji je puno informativniji od Activity Monitora, a dev je tvorac originalnog Windows Task Manager - [link]
  • Krehacro: Na kraju uzeo garmin venu 4
  • Gjuroo: RIP
  • Pongy75: RIP Bare - Napustio nas je jedan od najvećih
  • Yonkis: RIP Goran Bare
  • Riba: Pomalo, sutra tek idem po G5. :)
  • markoveic: riba, kako radi Morphos?

Za vikanje moraš biti prijavljen.

Prijava

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Anketa

Koji Mac koristite?

Page Speed 0.79 Seconds

Provided by iJoomla SEO