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()
Č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
```
]<dna_funkcije>
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(