fix caption spacing

This commit is contained in:
2026-05-26 15:12:08 +02:00
parent 32b3899bff
commit cdd6ff688d

View File

@@ -213,25 +213,19 @@ Treender je aplikacije, ki nam omogoča, da izbiramo in ocenjujemo fraktalna dre
[ [
#figure( #figure(
image("assets/rand/capture_show_noraml.jpg"), image("assets/rand/capture_show_noraml.jpg"),
caption: [ caption: [Primer aplikacije],
Primer aplikacije
],
)<aplikacija-slika-def> )<aplikacija-slika-def>
], ],
[ [
#figure( #figure(
image("assets/rand/capture_show_liked.jpg"), image("assets/rand/capture_show_liked.jpg"),
caption: [ caption: [Primer aplikacije like],
Primer aplikacije like
],
)<aplikacija-slika-like> )<aplikacija-slika-like>
], ],
[ [
#figure( #figure(
image("assets/rand/capture_show_dislike.jpg"), image("assets/rand/capture_show_dislike.jpg"),
caption: [ caption: [Primer aplikacije dislike],
Primer aplikacije dislike
],
)<aplikacija-slika-dislike> )<aplikacija-slika-dislike>
], ],
) )
@@ -436,17 +430,13 @@ $
[ [
#figure( #figure(
image("assets/rand/cordinats_show_mouse_picture.jpg"), image("assets/rand/cordinats_show_mouse_picture.jpg"),
caption: [ caption: [Prikaz vektorjev za premik slike],
Prikaz vektorjev za premik slike
],
)<Prikaz_vektorjev> )<Prikaz_vektorjev>
], ],
[ [
#figure( #figure(
image("assets/rand/show_mouse_movement.jpg"), image("assets/rand/show_mouse_movement.jpg"),
caption: [ caption: [Prikaz delta razdalje],
Prikaz delta razdalje
],
)<Prikaz_razdalje> )<Prikaz_razdalje>
], ],
) )
@@ -540,7 +530,7 @@ Funkcija #like sprejme indeks in liked in nato shrani index v vector liked ali d
Medtem funkcija #newGen vsebuje glavno logiko. Deluje na principu naravne evolucije naključno izbere dva DNA in ustvari otroka tako da naključno kopira DNA od obeh staršev, da ima v povprečju 50% DNA od enega starša in 50% od drugega starša. Ko ustvari novo generacijo celotno generacijo mutira tako da naključno spremeni specificirano število genov(byte). Tukaj lahko upazimo robni primer kaj če imamo samo en ali nič DNA-jev ki so uporabniku všeč, v primeru da kloniramo dokler ne ustvarimo novo generacijo in v primeru ko uporabniku ni noben všeč generiramo novo naključno generacijo. Medtem funkcija #newGen vsebuje glavno logiko. Deluje na principu naravne evolucije naključno izbere dva DNA in ustvari otroka tako da naključno kopira DNA od obeh staršev, da ima v povprečju 50% DNA od enega starša in 50% od drugega starša. Ko ustvari novo generacijo celotno generacijo mutira tako da naključno spremeni specificirano število genov(byte). Tukaj lahko upazimo robni primer kaj če imamo samo en ali nič DNA-jev ki so uporabniku všeč, v primeru da kloniramo dokler ne ustvarimo novo generacijo in v primeru ko uporabniku ni noben všeč generiramo novo naključno generacijo.
#figure(caption: "DnaManager")[ #figure(caption: [DnaManager])[
#grid( #grid(
columns: 2, columns: 2,
[ [
@@ -591,7 +581,7 @@ Medtem funkcija #newGen vsebuje glavno logiko. Deluje na principu naravne evoluc
== DNA == DNA
Dna je sestavljen iz dveh struktur, (@dna_objekt). Zanimljiv del ki ga opazimo je da je vsak gen točno en bite dolg in celoten objekt je v pomnilniku samo en velik list bitov (array of bites). To značinost uporabljamo v complementarnih funkcijah `newDna`, `makeChiled`, `clone` in `mutate`. Dna je sestavljen iz dveh struktur, (@dna_objekt). Zanimljiv del ki ga opazimo je da je vsak gen točno en bite dolg in celoten objekt je v pomnilniku samo en velik list bitov (array of bites). To značinost uporabljamo v complementarnih funkcijah `newDna`, `makeChiled`, `clone` in `mutate`.
#figure(caption: "DNA objekt")[ #figure(caption: [DNA objekt])[
#grid( #grid(
columns: 2, columns: 2,
@@ -680,9 +670,7 @@ Ostale funkcije so podobne najprej pretvorimo v `uint_8*` in nato:
#figure( #figure(
image("assets/rand/slika_drevesa.jpg", height: 200pt), image("assets/rand/slika_drevesa.jpg", height: 200pt),
caption: [ caption: [Končna slika po vizualizaciji],
Končna skika 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 Canvas je samo umesni razred ki postavi risanje na teksturo in nato pokliče BackGround in Tree
@@ -767,75 +755,57 @@ Postopek izrisa ozadja je sestavljen iz 5 korakov
[ [
#figure( #figure(
image("assets/draw_steps/steps_1_1.png", height: 100pt), image("assets/draw_steps/steps_1_1.png", height: 100pt),
caption: [ caption: [Korak nebo],
Korak nebo
],
)<steps_nebo> )<steps_nebo>
], ],
[ [
#figure( #figure(
image("assets/draw_steps/steps_2_2.png", height: 100pt), image("assets/draw_steps/steps_2_2.png", height: 100pt),
caption: [ caption: [Korak nebo],
Korak nebo
],
)<steps_zvezde> )<steps_zvezde>
], ],
[ [
#figure( #figure(
image("assets/draw_steps/steps_1_2.png", height: 100pt), image("assets/draw_steps/steps_1_2.png", height: 100pt),
caption: [ caption: [Korak soce],
Korak soce
],
)<steps_sonce> )<steps_sonce>
], ],
[ [
#figure( #figure(
image("assets/draw_steps/steps_1_3_1.png", height: 100pt), image("assets/draw_steps/steps_1_3_1.png", height: 100pt),
caption: [ caption: [Korak gora 1],
Korak gora 1
],
)<steps_gora_1> )<steps_gora_1>
], ],
[ [
#figure( #figure(
image("assets/draw_steps/steps_1_3_2.png", height: 100pt), image("assets/draw_steps/steps_1_3_2.png", height: 100pt),
caption: [ caption: [Korak gora 2],
Korak gora 2
],
)<steps_gora_2> )<steps_gora_2>
], ],
[ [
#figure( #figure(
image("assets/draw_steps/steps_1_3.png", height: 100pt), image("assets/draw_steps/steps_1_3.png", height: 100pt),
caption: [ caption: [Korak gora 3],
Korak gora 3
],
)<steps_gora_3> )<steps_gora_3>
], ],
[ [
#figure( #figure(
image("assets/draw_steps/steps_1_4.png", height: 100pt), image("assets/draw_steps/steps_1_4.png", height: 100pt),
caption: [ caption: [Korak gora 4],
Korak gora 4
],
)<steps_gora_4> )<steps_gora_4>
], ],
[ [
#figure( #figure(
image("assets/draw_steps/steps_1_5.png", height: 100pt), image("assets/draw_steps/steps_1_5.png", height: 100pt),
caption: [ caption: [Korak gora 5],
Korak gora 5
],
)<steps_gora_5> )<steps_gora_5>
], ],
) )
#figure( #figure(
image("assets/rand/Triangle_Strip.svg.png", height: 150pt), image("assets/rand/Triangle_Strip.svg.png", height: 150pt),
caption: [ caption: [Triangle strip],
Triangle strip
],
)<Triangle_Strip> )<Triangle_Strip>
] ]
@@ -880,7 +850,7 @@ Veja je struktura ki vsebuje podatke o:
// TODO: Dodaj slike za lazjo predstavo // TODO: Dodaj slike za lazjo predstavo
==== Algoritem ==== Algoritem
Začnemo tako, da damo v list @prvi_drawArgs in ponavljamo naslednje postopke dokler imamo nekaj v listi Začnemo tako, da damo v list @prvi_drawArgs in ponavljamo naslednje postopke dokler imamo nekaj v listi
#figure(caption: "Prvi DrawArgs")[ #figure(caption: [Prvi DrawArgs])[
```cpp ```cpp
struct DrawArgs struct DrawArgs
{ {
@@ -991,50 +961,38 @@ Začnemo tako, da damo v list @prvi_drawArgs in ponavljamo naslednje postopke do
[ [
#figure( #figure(
image("assets/vizualizacija_drevo/slika00.png", height: 100pt), image("assets/vizualizacija_drevo/slika00.png", height: 100pt),
caption: [ caption: [Začetna točka],
Začetna točka
],
)<viztree0> )<viztree0>
], ],
[ [
#figure( #figure(
image("assets/vizualizacija_drevo/slika01.png", height: 100pt), image("assets/vizualizacija_drevo/slika01.png", height: 100pt),
caption: [ caption: [Dolžina veje],
Dolžina veje
],
)<viztree1> )<viztree1>
], ],
[ [
#figure( #figure(
image("assets/vizualizacija_drevo/slika02.png", height: 100pt), image("assets/vizualizacija_drevo/slika02.png", height: 100pt),
caption: [ caption: [Kot in končna točka],
Kot in končna točka
],
)<viztree2> )<viztree2>
], ],
[ [
#figure( #figure(
image("assets/vizualizacija_drevo/slika03.png", height: 100pt), image("assets/vizualizacija_drevo/slika03.png", height: 100pt),
caption: [ caption: [Debeline],
Debeline
],
)<viztree3> )<viztree3>
], ],
[ [
#figure( #figure(
image("assets/vizualizacija_drevo/slika04.png", height: 100pt), image("assets/vizualizacija_drevo/slika04.png", height: 100pt),
caption: [ caption: [Barve],
Barve
],
)<viztree4> )<viztree4>
], ],
[ [
#figure( #figure(
image("assets/vizualizacija_drevo/slika05.png", height: 100pt), image("assets/vizualizacija_drevo/slika05.png", height: 100pt),
caption: [ caption: [Izris veje],
Izris veje
],
)<viztree5> )<viztree5>
], ],
) )
@@ -1044,17 +1002,13 @@ Začnemo tako, da damo v list @prvi_drawArgs in ponavljamo naslednje postopke do
[ [
#figure( #figure(
image("assets/vizualizacija_drevo/slika06.png", height: 200pt), image("assets/vizualizacija_drevo/slika06.png", height: 200pt),
caption: [ caption: [Novi otriki],
Novi otriki
],
)<viztree6> )<viztree6>
], ],
[ [
#figure( #figure(
image("assets/vizualizacija_drevo/slika07.png", height: 200pt), image("assets/vizualizacija_drevo/slika07.png", height: 200pt),
caption: [ caption: [Ponovimo],
Ponovimo
],
)<viztree7> )<viztree7>
], ],
) )
@@ -1073,7 +1027,7 @@ Začnemo tako, da damo v list @prvi_drawArgs in ponavljamo naslednje postopke do
Sprava se je drevo izrisalo s pomočjo raylib funkcije `DrawLineEx`, drevo se je izrisevalo vsak okvir(frame). Kasneje smo hoteli dodali veje z spremenljivo debelino, najlažja rešitev ki smo se jo spomnili je bila da narišemo krogce z spremenljivim polmerom. To nas je prisililo da moramo narisati čez 55,000 krogov. Z raylib-ovo funkcijo `DrawCircleV` za risanje krogov, je applikacija začela zaostajati(lagged). To smo rešili tako da najprej drevo narišemo na teksturo, ki je zelo enostavna za izris. To je rešilo večino problemov občasno se je ševedno pojavil zaostanek(lag spoke), ki smo ga rešili tako da smo omejili število risalnih klicov na okvir in drevo narisali v parih okvirih. Sprava se je drevo izrisalo s pomočjo raylib funkcije `DrawLineEx`, drevo se je izrisevalo vsak okvir(frame). Kasneje smo hoteli dodali veje z spremenljivo debelino, najlažja rešitev ki smo se jo spomnili je bila da narišemo krogce z spremenljivim polmerom. To nas je prisililo da moramo narisati čez 55,000 krogov. Z raylib-ovo funkcijo `DrawCircleV` za risanje krogov, je applikacija začela zaostajati(lagged). To smo rešili tako da najprej drevo narišemo na teksturo, ki je zelo enostavna za izris. To je rešilo večino problemov občasno se je ševedno pojavil zaostanek(lag spoke), ki smo ga rešili tako da smo omejili število risalnih klicov na okvir in drevo narisali v parih okvirih.
#align(center)[ #align(center)[
#figure(caption: "Optimizacije izrisa")[ #figure(caption: [Optimizacije izrisa])[
#table( #table(
columns: 5, columns: 5,
align: horizon, align: horizon,
@@ -1100,7 +1054,7 @@ Na zažetku (@dna_manager_v1) je DnaManager samo bil struktura kazalcev na `Dna`
gutter: 16pt, gutter: 16pt,
align: center, align: center,
[ [
#figure(caption: "DnaManager v1")[ #figure(caption: [DnaManager v1])[
```cpp ```cpp
struct DnaManagerData struct DnaManagerData
{ {
@@ -1114,7 +1068,7 @@ Na zažetku (@dna_manager_v1) je DnaManager samo bil struktura kazalcev na `Dna`
]<dna_manager_v1> ]<dna_manager_v1>
], ],
[ [
#figure(caption: "DnaManager v2")[ #figure(caption: [DnaManager v2])[
```cpp ```cpp
struct DnaManagerData struct DnaManagerData
{ {
@@ -1130,7 +1084,7 @@ Na zažetku (@dna_manager_v1) je DnaManager samo bil struktura kazalcev na `Dna`
) )
] ]
#figure(caption: "DnaManager v3")[ #figure(caption: [DnaManager v3])[
```cpp ```cpp
struct DnaManagerData struct DnaManagerData
{ {
@@ -1249,7 +1203,7 @@ Algoritmi so bili testirani na računalniku z AMD Ryzen 5 5500U procesorjem in 1
=== Rezultati podobnosti === Rezultati podobnosti
#align(center)[ #align(center)[
#figure(caption: "Rezultati podobnosti")[ #figure(caption: [Rezultati podobnosti])[
#table( #table(
columns: 7, columns: 7,
table.header([generacija], [evklidij], [dot], [cos\_sim], [cos\_sim\_var], [hamming], [levenshtein]), table.header([generacija], [evklidij], [dot], [cos\_sim], [cos\_sim\_var], [hamming], [levenshtein]),
@@ -1296,7 +1250,7 @@ Algoritmi so bili testirani na računalniku z AMD Ryzen 5 5500U procesorjem in 1
#pagebreak() #pagebreak()
=== Čas računanja podobnosti v us === Čas računanja podobnosti v us
#align(center)[ #align(center)[
#figure(caption: "Čas računanja podobnosti")[ #figure(caption: [Čas računanja podobnosti])[
#table( #table(
columns: 7, columns: 7,
table.header([generation], [euclidean], [dot], [cos\_sim], [cos\_sim\_var], [hamming], [levenshtein]), table.header([generation], [euclidean], [dot], [cos\_sim], [cos\_sim\_var], [hamming], [levenshtein]),