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:
Tema zaključana.
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).
Tema zaključana.
08.09.2013 | 20:43

Datoteka za prilog:

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

Datoteka za prilog:

Naziv datoteke: Kochova_pahulja.zip
Veličina datoteke: 35384
Tema zaključana.
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
.
Tema zaključana.
Moderatori: Bertone
  • Stranica:
  • 1

Vikalica™

Zadnja poruka: pred 1 tjedan, 1 dan
  • smayoo: piši u forum
  • user: Ako zna netko kako dobiti njihovu zadnju poznatu lokaciju to bi bilo korisno
  • user: pretražio sam sve itd.
  • user: Već sam "play sound" aktivirao, ništa
  • user: nestale mi Airpods 4, what do? Piše "No location found" u FindMy.
  • user: ljudi,
  • CoffeePod: Cijeli 26 relase je bio sramotan za Apple i morali su “double down” i back to the lab da sve tweakaju kako su trebali
  • CoffeePod: Performansi i ulickani dizajn je ono sto treba
  • CoffeePod: Iskreno ne razumjem vas kojima je ovo “dosadno”. Stvarno morate ici taknuti travu.
  • dpasaric: Objavio sam osvrt na naslovnici, pa tamo komentirajte...
  • drlovric: Meni je Siri skroz OK, upakirali su to lijepo. Ocekivano ce vecina puno ovih stvari iic na pretplatu jer trosi compute (i Gemini) resurse. Lejpse mi izgleda UI jer smanjuju prozirnost :)
  • dpasaric: Što je najbolje nećemo imati niti Siri AI jer je EU učinila sve da se to regulatorno zabrani.
  • pontmax1: A dosade, imate li nešto više od šugave SIri AI
  • drlovric: Kao da ce roditelji ovo raditi. Otkljucat ce im sve i cao.
  • drlovric: Smorise sa ovom djecom :) Nestvarno...
  • dpasaric: Za sada dosadno za poludit... :)
  • dpasaric: I ja imam niska očekivanja, pa da vidimo! :)
  • dpasaric: Kreće za 5 minuta! :)
  • drlovric: Meni su ocekivanaj jako nisko. Pricati ce o Siri, koja ce opet doci kao beta. Pa ce raditi kako treba u inacici 27.4 :) Volio bih da grijesim, ali vise im ne vjerujem na rijec.
  • ping: Bit će to zanimljiva večer. Kupio sam dvije vrečice indijskih oraščića i planiram još barem mali paket Munchmallowa.
  • dpasaric: Danas u 19h WWDC! :)
  • Riba: user, ne upisuj admin password ano ne znas tko i zasto te pita i to je u osnovi to.
  • Yonkis: U Berlinu se otvara Developer Centar [link]
  • user: kako biti siguran od virusa na Macu? Sad ću reinstalirati OS i želim biti siguran.
  • user: bok ljudi,
  • Yonkis: Mene, kao prišlića, iznenadilo koliko je puno zastupljeniji Viber nego WhatsApp a Signal skoro nitko nije ni čuo (osim jabučnjaka). Zanimljivo.
  • Riba: Za tajne stvari imam pisacu masinu. :)
  • Riba: Ja imam instalirano sve pa tko kako hoce.
  • drlovric: Sve koje znam koriste Whatsapp. Viber, je isto popularan. Kao i Telegram. Signal nije bas zastupljen u mojim krugovima :)
  • dpasaric: Hehe, odlično, ja sam odavno prebacio sve na Signal.
  • Performita: Hvala Smayoo, Kako je Davor napisao ispod članka, i ja ebo čitam knjigu i lagano sve prijatelje, osobito one koji nemaju iPhone nagovaram na Signal.
  • smayoo: svima koje znam, to jest. :)
  • smayoo: skinuo i proslijedio link svima koji su još sposobni čitati knjige... :)
  • Performita: Ekipa, idemo sad svi skinuti besplatnu knjigu Guya Kawasakija da mu na administraciji stranice pokaže kako je odjeknulo u Hrvatskoj ;-)
  • dpasaric: Jest sitni sat, ali je published! :) Uživajte!
  • Yonkis: [link]
  • Yonkis: Baš baš sve!
  • Djuro genijalac: Izgleda da je BAŠ sve ovdje
  • Djuro genijalac: [link]
  • Yonkis: Hooorayyyy [link]
  • dpasaric: Radim na tome da nabavim zanimljiv monitor za tehnički review, držite palčeve da upali jer bi moglo biti mnogima zanimljivo. :)
  • Yonkis: Font je drugačiji.
  • Performita: :-)
  • dpasaric: Pogledajte naslovnicu! :)
  • dpasaric: Taaaa-daaaa! :)
  • dpasaric: Javim uskoro... :)
  • dpasaric: Ne, ovdje na Jabučnjaku!
  • Yonkis: dpasaric - Jel' u Kokolu?
  • dpasaric: Spremamo poslasticu za večeras! :)
  • ivan.ocd: Hvala za konkretni model, budem i ja pogledao za takav neki model… imam puno knjiga koje trrba analizirati i tu je onda preslab.

Za vikanje moraš biti prijavljen.

Prijava

Prisutni jabučari

Riba, Anonimci (510)

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Anketa

Koji Mac koristite?

Page Speed 0.78 Seconds

Provided by iJoomla SEO