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 16 sati, 5 minuta
  • Yonkis: Novi firmware ako nekome treba: [link]
  • Yonkis: Nevjerovatno da je cijena skočila na 150€ a znam da je prije 2 godine bila cca 70€. Prestrašno!
  • smayoo: @Yonkis - nažalost, u Rijeci više nikom. :( U Zagrebu je Davor više puta spomenuo da ima dobra iskustva s Agramservisom
  • VanjusOS: pa ti vratim
  • VanjusOS: ako imaš kabl kojeg trebaš isprobati možeš poslati meni da isprobam spojiti Mac pro
  • VanjusOS: i ja tražim već thunderbolt 2 kabel, iz Osijeka sam
  • zoranowsky: Jel ima netko u ZG za posuditi thunderbolt 2 kabel? Imam issue sa minijem M4 i thunderbolt 27 displayem pa trebam testirati neke kombinacije...
  • Yonkis: Kome vi u Rijeci vjerujete za zamjenu baterije na iPhonu jer u iStyleu je 150 € i čeka se par tjedana
  • Yonkis: :(
  • smayoo: [link]
  • smayoo: RIP Scott Adams :(
  • Gjuroo: Za sad to može zvučati i kao Affinity priča. Not great but not that bad.
  • Soffoklo: Za to vrijeme Apple se lagano pretvara u Adobe - [link]
  • drlovric: Sve je bolje od ove blamaze sa Apple AI i cekanja pametnije Siri koja nikako da dodje :)
  • IkoIko: Apple i Google sklopili ugovor o korištenju Gemini AI... Zanimljiv razvoj situacije
  • ZeljkoB: Spigen - [link]
  • Riba: Moza zato da mozes koristiti BT tipkovnicu i mouse i dok je zaklopljen?
  • user: glupo: zatvorim laptop, BT i dalje upaljen, što ne bi trebalo ovo **** se ugasit kad ga poklopim
  • rusty: date hack je samo na par sekundi. vratiš datum, startaš app čisto da se digne i vratiš datum opet. To je to. Čisto da loada profile i postavke
  • smayoo: Date hack nisam htio raditi jer potrga druge stvari. Krenuo sam instalirati staru verziju LogiOptions preko homebrewa, ali riješili su problem prije nego sam dospio to napraviti
  • rusty: Osobno mislim da je 12h predugo za cert problem I nisam mogao doć na sebe kakav su problem napravili. Ono što je još gore, ovo im nije prvi put za taj isti slučaj. Dakle kako ne naučiš nešto iz ovoga. Dodano, date hack rješava problem da se ne mora drugi put čekati 12h
  • Bertone: A jučer nisam koristio MBP nego T14s pa nisam iskusio veselje sa certifikatima :D
  • Bertone: Imam MXMastera već godinama [link] i jedina dobra stavr kod njega je što ga mogu koristiti sa MBP, Tnink Padom i desktop računalom bez pretjeranog petljanja, no da je (pre)skup za ono što nudi, je.
  • smayoo: I, na kraju, ako za neki komad hardvera koji sam u životu kupio mogu reći da NIJE preskupo plaćen, to je sigurno Logitech MX Master 3. Jučer ujutro jesam bio spreman popi... na njih, ali činjenica je da su problem riješili unutar cca 12h otkad se pojavio.
  • smayoo: Osim toga, hardver radi s bazičnim postavkama, ali svi tweakovi i custom podešenja - ne.
  • smayoo: Radi se o softveru koji mora dobiti dozvolu korisnika da zakopa dosta duboko pod haubu radi komunikacije s periferijom.
  • smayoo: Ne mora biti spojeno na internet. Sigurnosni certifikat aplikacije je bio istekao i Apple ga je blokirao, a Logitech nije pazio na datum isteka certifikata i nije izdao update s novim certifikatom na vrijeme
  • Bertone: Ček malo, preskupo plaćeni hardver ne dela na Apple računalu ako računalo nije spojeno na internet (na stranu sad istekli certifikat) ili sam propustio nešto
  • smayoo: Da, jučer sam imao natezanje oko toga. Ali moram im priznati da su brzo riješili.
  • Yonkis: [link]
  • smayoo: @mrobert, forum, tema "eOI - opet diskriminacija"
  • stefanjos: SRETNA NOVA!
  • drlovric: [link]
  • signout: Sretna Nova!
  • zoranowsky: Sretna Nova!
  • dpasaric: Sretno nam svima! :)
  • Borisone: Sretna vam 2026-ta godina!
  • Gjuroo: Sretna i berićetna 2026.!
  • smayoo: SRETNAAAAAAAA!!! :D
  • Borostef: Sretna Nova godina!!! :)
  • Air: Sretna i uspješna nova!
  • drpongrac23: Sretna nova 2026. svima!!!
  • pontmax1: Ima li šampanjac ili samo Pepsi bez šećera :D
  • Yonkis: Sretan Božić svima!
  • vjeko1: Sretan Božić svima!
  • jura22: Sretan Božić i blagoslovljeni mi bili svi bez obzira na sve!
  • Gjuroo: Sretan Božić, ekipa!
  • zoranowsky: Sretan Božić svima! :)
  • Djuro genijalac: Sretan Žićbo!
  • Bertone: Sretan Božić!

Za vikanje moraš biti prijavljen.

Prijava

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Komentari

Anketa

Koji Mac koristite?

Page Speed 0.37 Seconds

Provided by iJoomla SEO