Verkefni sem g tk a mr var a gera sjlfger lkn af fjllum, og studdist g vi lsingu sem er gefin bls. 1023 kennslubkinni (ISBN 0-201-84840-6).

fallinu Fjall::sneida(...) reyni g a tfra slembihegun sem er lst bkinni; fyrir hvern rhyrningsflt eru fundnir mipunktarnir hlium eirra ( zx-plani) og eim lyft y-tt me eim htti sem er gefinn jfnu lnu 5 bls 1023 b kinni ( Fjall::rask(..) hefur virkni P() jfnunni ). t fr eim fleti sem fallinu er gefi, skilar a 7 fltum; 3 lrttum (burar)fltum og 4 ekki-lrttum fltum (sj mynd 20.8 (b) bk).

Falli Fjall::pudra(...) tekur inn upphafi grunn-rhyrningsflt fjallsins. Ef str hans (varpa xz-plan) er yfir settu upplausnargildi, er honum hent Fjall::sneida(...) og hntar lrttu flatanna sem koma t r v eru settir hntafylki, en hinir 4 ekki-lrttu fletirnir eru sendir inn Fjall::pudra(...) endurkvmt; ef str flatarins sem Fjall::pudra(...) tekur vi er innan vi sett upplausnargildi er hntum hans komi fyrir hntafylki. Str essa hntafylkis (og fylkja lita og nor mala) er reiknu fyrrifram me Fjall::finnaFlatafjolda(), svo nkvmlega a plss sem arf er teki fr ( Fjall::byggja()) fyrir Fjall::pudra(...) a fylla inn . Hntafylki (og nnur fylki) er nota af Fjall::teikna() til a teikna fjalli.

Fjall::pudra(...) setur litagildi fyrir hvern hnt hntalitafylki, og notar til ess Fjall::finnaLit(...). Fjall::finnaLit(...) tekur inn hargildi (y) hntar sem a finna lit , og hntafylki rhyrningsflatarins sem hann liggur .

Fjall::pudra(...) setur normalvektor hvers punktar normalvektorafylki og notar til ess Fjall::finnaNormal(...). Fjall::finnaNormal(...) tekur inn hntafylki rhyrningsflatar sem hntur liggur og reiknar normalinn hann (normal semsagt ekk ja fna milli aliggjandi flata = flatt).


Fjalli heldur utan um fjgur litasvi sem Fjall::finnaLit() notar, samt rum upplsingum, til a finna lit hntar. rj eirra m lta sem jarvegslit, og eitt sem berglit fjallsins. Fyrir hvert litagildi er hgt a skilgreina upphafsh (y) og endah, upphafslit og endalit, fjlda setlaga, og fyrir jarvegslitina "hallaol".

Blanda er milli upphafslitar og endalitar (gradient) eftir hverju litabili; ef fleiri en eitt setlag er skilgreint fyrir a er v raun skipt undirbil og blanda innan hvers eirra (au speglast hvert mti ru):



Litablndun innan litabila.
Ef litabil skarast er eim einnig blanda saman:


Rautt litabil 1 er harbili 0 - 4, grnt litabil 2 er harbili 2 - 8, bltt hvtt litabil 3 er harbili 6 - 10. ll litabil ekja algjrlega (ekkert berg sst).

g geri tilraun til a bja upp stjrn hve vel "jarvegur" tollir halla. "Hallaol" jarvegs er gefi til kynna me veldistlu. Fjall::finnaLit(...) notar essa veldistlu og halla tiltekins flatar (ef hallaolsreikningur er settur ) til a f inna t hvernig jarvegslitur blandast berglit; ef veldistalan er 0 (ea hallareikningu settur af) eikur jarvegslitur alla fleti, ef veldistala er 1 blandast berg- og jarvegslitur lnulega eftir halla ( 45 flatarhalla leggja bi berg og jarvegur j afn miki til litar), me hrri veldistlum arf minni halla til a bergliturinn s yfirgnfandi:


veldistala 0: Jarvegur olir allan halla.


veldistala 1: lnulegt samband milli halla flatar og hlutfalla jarvegs- og berglitar.


veldistala 2: jarvegur tollir illa halla.



Efst bls. 1024 bk er minnst a misgengi (crease) geti myndast milli yfirborsflata sem byggja hvor snum grunnfletinum. Me v a nota glPolygonMode(GL_FRONT_AND_BACK, GL_FILL) vera hrif essa ltt sjanleg, v teiknast bar hliar b eggja lrttu rhyrninganna sem liggja essu misgengi. Lrttu fletirnir sjst me v kkja undir fjalli:


S undir fjalli

Ef aeins framhliar eru teiknaar (glPolygonMode(GL_FRONT, GL_FILL)) vera essi misgengi mjg snileg:


Snileg misgengi yfirbori milli flata sem byggja lkum grunnfltum



etta er sjlfsagt einfaldasta tgfan af sjlfgerum fjllum, og sumum tilfellum arf mjg greinilega a auka slembihegunina, eins og t.d. lrttum svum ( mikilli upplausn) myndast leiinlega regluleg mynstur. tli nsta verkefni s ekki a p rfa tvkkanirnar sem er lst bls. 1024 bk :)


----

Til a hreyfa auga um xz-plani er hgt a nota rvalyklana (ea a,d, s,w), og PageUp og PageDown (ea q og e) til a hreyfa a upp og niur. Auganu er sni me v a hreyfa msina me vinstri takka niri. Til a f msa stillingarmglueika er tt hgri msarhnappinn.


Hr eru nokkrar myndir vibt:




































bthj@rhi.hi.is, vor 1999.
til baka