diff --git a/diploma_nikola_petrov.typ b/diploma_nikola_petrov.typ index 8962285..5ba9806 100644 --- a/diploma_nikola_petrov.typ +++ b/diploma_nikola_petrov.typ @@ -628,7 +628,7 @@ Dna je sestavljen iz dveh struktur (@dna_objekt). Zanimliv del, ki ga opazimo, j #pagebreak() -Če pogledamo definicijo od `newDna` (@dna_funkcije) vidimo pretvorbo(cast) iz `Dna` v `uint8_t*` in sedaj se lahko enostavno sprehodimo čez objekt in spremenimo vrednosti. +Če pogledamo definicijo od `newDna` (@dna_funkcije), vidimo pretvorbo (cast) iz `Dna` v `uint8_t*` in sedaj se lahko enostavno sprehodimo čez objekt in spremenimo vrednosti. #figure(caption: [Primer DNA funkcije])[ ```cpp @@ -651,10 +651,10 @@ Dna je sestavljen iz dveh struktur (@dna_objekt). Zanimliv del, ki ga opazimo, j ``` ] -Ostale funkcije so podobne najprej pretvorimo v `uint_8*` in nato: -- `makeChild` naključno kopiramo iz staršev -- `clone` naključno kopiramo iz starša in vstavljamo naključne vrednosti -- `mutate` pa sprecificirano število vrednosti spremenimo v naključne vrednosti +Ostale funkcije so podobne; najprej pretvorimo v `uint_8*` in nato: +- `makeChild` naključno kopiramo iz staršev, +- `clone` naključno kopiramo iz starša in vstavljamo naključne vrednosti, +- `mutate` pa sprecificirano število vrednosti spremenimo v naključne vrednosti. @@ -668,7 +668,7 @@ Ostale funkcije so podobne najprej pretvorimo v `uint_8*` in nato: caption: [Končna slika po vizualizaciji], ) -Je sestavljena iz treh razredov `Canvas`, `BackGround`, `Tree`(@razredi_vizualizacije). Tukaj Canvas je samo umesni razred ki postavi risanje na teksturo in nato pokliče BackGround in Tree +Je sestavljena iz treh razredov: `Canvas`, `BackGround`, `Tree` (@razredi_vizualizacije). Tukaj je Canvas samo vmesni razred, ki postavi risanje na teksturo in nato pokliče BackGround in Tree. #figure(caption: [Razredi za vizualizacijo])[ #grid( @@ -728,20 +728,20 @@ Je sestavljena iz treh razredov `Canvas`, `BackGround`, `Tree`(@razredi_vizualiz === Ozadje Postopek izrisa ozadja je sestavljen iz 5 korakov -+ Nebo je narisano z pomočjo raylib funkcije `DrawRectangleGradientV`(@steps_nebo) ++ Nebo je narisano s pomočjo raylib funkcije `DrawRectangleGradientV` (@steps_nebo). -+ Če je noč, zvezde narišemo z naključnim semenom iz DNA ki se uporabi za pozicijo, in funkcijo `DrawTriangle` (@steps_zvezde) ++ Če je noč, zvezde narišemo z naključnim semenom iz DNA, ki se uporabi za pozicijo, in funkcijo `DrawTriangle` (@steps_zvezde). -+ Sonce in Luna so narisane z raylib funkcijo `DrawCircle` (@steps_sonce) ++ Sonce in luna sta narisana z raylib funkcijo `DrawCircle` (@steps_sonce). -+ Gore so bile težje za narisat odločil sem se da bom uporabil triangle strip, (@Triangle_Strip) @wiki_triangle_strip najprej se odlocimo iz koliko segmentov jo bomo narisali v aplikaciji uporabljamo 150 segmentov s tem imamo širino segmenta. Sedaj sledimo tem korakom: - + Prvo točko postavimo v spodnjem levem kotu (0,0) - + Za drugo točko si izberemo naključno številko za višino gore (0,80) - + Naslednja točka je spet na telh samo zamaknjena za širino segmenta na desno(20,0) - + Za naslednjo točko si zberemo naključno število za višino gore in zamaknjeno na desno od prejšne višine (20, 90) - + Sedaj ponavljamo točko 3 in 4 dokler ne pridemo do desnega roba slike ++ Gore so bile težje za narisati, zato smo se odločili, da bomo uporabili triangle strip (@Triangle_Strip) @wiki_triangle_strip. Najprej smo se odločili, iz koliko segmentov jo bomo narisali v aplikaciji; uporabljamo 150 segmentov, s tem imamo širino segmenta. Sedaj sledimo tem korakom: + + Prvo točko postavimo v spodnji levi kot (0,0). + + Za drugo točko si izberemo naključno številko za višino gore (0,80). + + Naslednja točka je spet na tleh, samo zamaknjena za širino segmenta na desno (20,0). + + Za naslednjo točko si zberemo naključno število za višino gore in zamaknjeno na desno od prejšne višine (20, 90). + + Sedaj ponavljamo točki 3 in 4, dokler ne pridemo do desnega roba slike. -+ Ponovimo korak 4 še dvakrat da dobimo gorovje (@steps_gora_5) ++ Ponovimo korak 4 še dvakrat, da dobimo gorovje (@steps_gora_5). #block(breakable: false)[ #grid( @@ -811,23 +811,23 @@ Postopek izrisa ozadja je sestavljen iz 5 korakov #let da = `DrawArgs` #let dn = `Branch` -Algoritem za izris drevesa je iterativni proceduralni generator. Za izdris uporabljamo strukturo #dn (@dna_objekt) in `std::list` (FIFO) #da (@razredi_vizualizacije) +Algoritem za izris drevesa je iterativni proceduralni generator. Za izris uporabljamo strukturo #dn (@dna_objekt) in `std::list` (FIFO) #da (@razredi_vizualizacije). ==== DNA Branch -Veja je struktura ki vsebuje podatke o: +Veja je struktura, ki vsebuje podatke o: -- Začetni barvi (`colorX`) [0, 255] -- Spremembi barve (`colorX_change`) za koliko se barva spremeni čez dolžino veje [0, 255] -- Variaciji zečetne barve (`colorVar`) za koliko se lahko naključno spremeni začetna barva [-15, -15] -- Začetna debelina (`size`) [2, 20] -- Debelina glede na starša (`sizeParent`) [0.0, 1.0] -- Debelina glede na globino (`sizeLevel`) iz @table_glob_data procent koliko je podoben predefinirani velikosti [0.0, 1.0] -- Sprememba debeline (`sizeChange`) za končna debelina veje [-5, 5] -- Variacija debeline (`sizeVar`) za koliko se lahko naključno spremeni začetna debelina [-5, 5] -- Dolžina (`length`) veje [0.5, 1.3] -- Variacija dolžine (`lengthVar`) za koliko se lahko nakključno spremeni dolžina veje [-0.15, 0.15] -- Stevilo otrokov (`branchCount`) koliko vej bo nadaljevalo [2, 3] -- Variacija kota med vejami (`branchAngleVar`) naključna variacija kota med vejami za to da ni enakomerno razporejeno [0, 20] +- začetni barvi (`colorX`) [0, 255], +- spremembi barve (`colorX_change`), za koliko se barva spremeni čez dolžino veje [0, 255], +- variaciji začetne barve (`colorVar`), za koliko se lahko naključno spremeni začetna barva [-15, -15], +- začetni debelini (`size`) [2, 20], +- debelini glede na starša (`sizeParent`) [0.0, 1.0], +- debelini glede na globino (`sizeLevel`); iz @table_glob_data procent, koliko je podoben predefinirani velikosti [0.0, 1.0], +- spremembi debeline (`sizeChange`) za končno debelino veje [-5, 5], +- variaciji debeline (`sizeVar`), za koliko se lahko naključno spremeni začetna debelina [-5, 5], +- dolžini (`length`) veje [0.5, 1.3], +- variaciji dolžine (`lengthVar`), za koliko se lahko naključno spremeni dolžina veje [-0.15, 0.15], +- številu otroki (`branchCount`), koliko vej bo nadaljevalo [2, 3], +- variaciji kota med vejami (`branchAngleVar`) naključna variacija kota med vejami zato, da ni enakomerno razporejeno [0, 20]. #figure(caption: [Globalni podatki])[ #table(