This commit is contained in:
2026-05-27 22:15:11 +02:00
parent 454480888f
commit b922122a1f

View File

@@ -628,7 +628,7 @@ Dna je sestavljen iz dveh struktur (@dna_objekt). Zanimliv del, ki ga opazimo, j
#pagebreak() #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])[ #figure(caption: [Primer DNA funkcije])[
```cpp ```cpp
@@ -651,10 +651,10 @@ Dna je sestavljen iz dveh struktur (@dna_objekt). Zanimliv del, ki ga opazimo, j
``` ```
]<dna_funkcije> ]<dna_funkcije>
Ostale funkcije so podobne najprej pretvorimo v `uint_8*` in nato: Ostale funkcije so podobne; najprej pretvorimo v `uint_8*` in nato:
- `makeChild` naključno kopiramo iz staršev - `makeChild` naključno kopiramo iz staršev,
- `clone` naključno kopiramo iz starša in vstavljamo naključne vrednosti - `clone` naključno kopiramo iz starša in vstavljamo naključne vrednosti,
- `mutate` pa sprecificirano število vrednosti spremenimo v 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], 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])[ #figure(caption: [Razredi za vizualizacijo])[
#grid( #grid(
@@ -728,20 +728,20 @@ Je sestavljena iz treh razredov `Canvas`, `BackGround`, `Tree`(@razredi_vizualiz
=== Ozadje === Ozadje
Postopek izrisa ozadja je sestavljen iz 5 korakov 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: + 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 spodnjem levem kotu (0,0) + 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) + 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) + 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) + 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 + 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)[ #block(breakable: false)[
#grid( #grid(
@@ -811,23 +811,23 @@ Postopek izrisa ozadja je sestavljen iz 5 korakov
#let da = `DrawArgs` #let da = `DrawArgs`
#let dn = `Branch` #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 ==== DNA Branch
Veja je struktura ki vsebuje podatke o: Veja je struktura, ki vsebuje podatke o:
- Začetni barvi (`colorX`) [0, 255] - začetni barvi (`colorX`) [0, 255],
- Spremembi barve (`colorX_change`) za koliko se barva spremeni čez dolžino veje [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] - variaciji začetne barve (`colorVar`), za koliko se lahko naključno spremeni začetna barva [-15, -15],
- Začetna debelina (`size`) [2, 20] - začetni debelini (`size`) [2, 20],
- Debelina glede na starša (`sizeParent`) [0.0, 1.0] - debelini 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] - debelini 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] - spremembi debeline (`sizeChange`) za končno debelino veje [-5, 5],
- Variacija debeline (`sizeVar`) za koliko se lahko naključno spremeni začetna debelina [-5, 5] - variaciji debeline (`sizeVar`), za koliko se lahko naključno spremeni začetna debelina [-5, 5],
- Dolžina (`length`) veje [0.5, 1.3] - dolžini (`length`) veje [0.5, 1.3],
- Variacija dolžine (`lengthVar`) za koliko se lahko nakključno spremeni dolžina veje [-0.15, 0.15] - variaciji dolžine (`lengthVar`), za koliko se lahko naključno spremeni dolžina veje [-0.15, 0.15],
- Stevilo otrokov (`branchCount`) koliko vej bo nadaljevalo [2, 3] - številu otroki (`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] - variaciji kota med vejami (`branchAngleVar`) naključna variacija kota med vejami zato, da ni enakomerno razporejeno [0, 20].
#figure(caption: [Globalni podatki])[ #figure(caption: [Globalni podatki])[
#table( #table(