” visualisering av trianguleringer og trianguleringsprosesser”
DESCRIPTION
” Visualisering av trianguleringer og trianguleringsprosesser”. Hovedfagspresentasjon Per-Idar Evensen ([email protected]) 10. desember 2004. Program. Bakgrunn og motivasjon Teoretiske begreper og definisjoner TTL (Triangulation Template Library) Funksjonalitet i TriangTutor - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/1.jpg)
1
””Visualisering av trianguleringer Visualisering av trianguleringer og trianguleringsprosesser”og trianguleringsprosesser”
HovedfagspresentasjonPer-Idar Evensen
10. desember 2004
![Page 2: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/2.jpg)
2
Program
• Bakgrunn og motivasjon• Teoretiske begreper og definisjoner• TTL (Triangulation Template Library)• Funksjonalitet i TriangTutor• Programstruktur• Oppsummering og konklusjon• Demo• Spørsmål
![Page 3: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/3.jpg)
3
Program
• Bakgrunn og motivasjon• Teoretiske begreper og definisjoner• TTL (Triangulation Template Library)• Funksjonalitet i TriangTutor• Programstruktur• Oppsummering og konklusjon• Demo• Spørsmål
![Page 4: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/4.jpg)
4
Bakgrunn og motivasjon
• Interaktiv trianguleringsapplikasjon til bruk i undervisning (INF-MAT5370 tidligere INF-TT).
• Demo applikasjon for trianguleringsbiblioteket TTL (Triangulation Template Library).
• Visualisere Delaunay-trianguleringer i planet med og uten føringer.
• I tillegg visualisere noen andre konsepter relatert til Delaunay-trianguleringer.
• Bruke OpenGL til å generere datagrafikken.
![Page 5: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/5.jpg)
5
Hovedproblemstilling
• Finne hensiktsmessige måter å visualisere Delaunay-trianguleringer og teorien rundt disse.
![Page 6: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/6.jpg)
6
TriangTutor
• Delaunay-trianguleringer• Voronoi-diagram• Omskrivende sirkler• Influensregion• Høy grad av brukerinteraksjon• Flytte noder rundt• Plattformuavhengig (Windows og Linux/Unix)• Brukervennlig (enkel å ta i bruk) og robust.• Menysystem laget med Qt.
![Page 7: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/7.jpg)
7
Program
• Bakgrunn og motivasjon• Teoretiske begreper og definisjoner• TTL (Triangulation Template Library)• Funksjonalitet i TriangTutor• Programstruktur• Oppsummering og konklusjon• Demo• Spørsmål
![Page 8: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/8.jpg)
8
Begreper og definisjoner
• Noder, kanter, trekanter og trianguleringer
• Delaunay-triangulering
• Voronoi-diagram
• Omskrivende sirkel
![Page 9: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/9.jpg)
9
Trianguleringer
• Triangulere: dele opp geometriske flater eller plane polygoner i trekanter.
• Representere en flate i en datamaskin.• Kartografi.• Digitale terrengmodeller.• Geografiske informasjonssystemer.• FEM (finite element methods).• Datagrafikk og visualisering.
![Page 10: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/10.jpg)
10
Trianguleringer i planet
Et domene med punkter i planet, og en mulig triangulering av disse.
![Page 11: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/11.jpg)
11
Swapping av kanter
Swapping av en kant i et stengt konvekst kvadrilateral.
![Page 12: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/12.jpg)
12
Swapping av kanter
Swapping av en kant i et stengt konvekst kvadrilateral.
![Page 13: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/13.jpg)
13
Delaunay-triangulering3 definisjoner:
• Optimal i henhold til MaxMin-vinkel kriteriet. (Minste vinkel er størst mulig).
• Rettlinjedualen til Voronoi-diagrammet til P.
• Ingen omskrivende sirkel av noen trekant i trianguleringen inneholder noen punkter fra P.
![Page 14: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/14.jpg)
14
Voronoi-region
Det indre av Voronoi-regionen til pi består av alle punktene x i planet som ligger nærmere pi enn noen av de andre punktene i P.
pi
![Page 15: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/15.jpg)
15
Voronoi-diagram
Dersom vi setter sammen Voronoi-regionene til alle punktene i P, får vi Voronoi-diagrammet P.
![Page 16: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/16.jpg)
16
Delaunay-triangulering
Trekker vi rette linjestykker mellom alle Voronoi-naboene i P, får vi en Delaunay-triangulering.
![Page 17: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/17.jpg)
17
Delaunay-triangulering
En omskrivende sirkel til en trekant i en Delaunay-triangulering av en punktmengde P omslutter ikke noen punkter fra P.
![Page 18: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/18.jpg)
18
Program
• Bakgrunn og motivasjon• Teoretiske begreper og definisjoner• TTL (Triangulation Template Library)• Funksjonalitet i TriangTutor• Programstruktur• Oppsummering og konklusjon• Demo• Spørsmål
![Page 19: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/19.jpg)
19
TTL
• Generisk trianguleringsbibliotek ved at det ikke avhenger av en spesiell underliggende datastruktur.
• Algoritmene er implementer på et abstrakt nivå vha. G-maps med dartalgebra og -iteratorer.
• Kommuniserer med datastrukturen til applikasjonen gjennom et grensesnitt eller tilpassningslag.
![Page 20: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/20.jpg)
20
Applikasjon som bruker TTL
Triangulation Template Library (TTL)Generiske algoritmer basert på G-maps, og enkle
geometriske og topologiske operasjoner.
Topologiske elementer: Darter D {d}.
Iteratorer i: D D, i 0, 1 ,2.
Triangulation Template Library (TTL)Generiske algoritmer basert på G-maps, og enkle
geometriske og topologiske operasjoner.
Topologiske elementer: Darter D {d}.
Iteratorer i: D D, i 0, 1 ,2.
TilpassningslagGrensesnitt mot den underliggende datastrukturen.• Dart klasse med -iteratorer• Traits klasse med geometriske og topologiske operasjoner og
typedefinisjoner.
TilpassningslagGrensesnitt mot den underliggende datastrukturen.• Dart klasse med -iteratorer• Traits klasse med geometriske og topologiske operasjoner og
typedefinisjoner.
ApplikasjonApplikasjon
Underliggende datastrukturUnderliggende datastruktur
![Page 21: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/21.jpg)
21
Tradisjonell trianguleringsapplikasjon
TrianguleringsalgoritmerTrianguleringsalgoritmer
ApplikasjonApplikasjon
Underliggende datastrukturUnderliggende datastruktur
![Page 22: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/22.jpg)
22
Program
• Bakgrunn og motivasjon• Teoretiske begreper og definisjoner• TTL (Triangulation Template Library)• Funksjonalitet i TriangTutor• Programstruktur• Oppsummering og konklusjon• Demo• Spørsmål
![Page 23: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/23.jpg)
23
Grunnleggende funksjonalitet
• Lage Delaunay-trianguleringer med og uten føringer (inkrementell algoritme).
• Innsetting, fjerning og interaktiv flytting av noder.
• Innsetting av føringer (fastlagte kanter).
• Lese inn og lagre noder og føringer til fil.
• Generere vilkårlige punkter.
• Lagre kopi av framebufferet til fil (figurer).
• Zoome og panorere.
• Fargetabeller.
![Page 24: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/24.jpg)
24
Menysystemet
![Page 25: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/25.jpg)
25
Inkrementell algoritme
Starter med en kunstig initiell triangulering som består av to trekanter.
![Page 26: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/26.jpg)
26
Inkrementell algoritme
Bygger opp trianguleringen ved å sette inn en og en node. Trianguleringen oppdateres hele tiden til å være Delaunay.
![Page 27: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/27.jpg)
27
Inkrementell algoritme
Bygger opp trianguleringen ved å sette inn en og en node. Trianguleringen oppdateres hele tiden til å være Delaunay.
![Page 28: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/28.jpg)
28
Inkrementell algoritme
Etter at alle nodene som skal være med i trianguleringen har blitt satt inn, fjerner vi den kunstige randen.
![Page 29: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/29.jpg)
29
Avansert funksjonalitet
• Influensregion
• Voronoi-diagram
• Omskrivende sirkler
![Page 30: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/30.jpg)
30
Influensregion
Når det settes inn et punkt p i en Delaunay-triangulering, må et begrenset område rundt p retrianguleres for at trianguleringen fortsatt skal være Delaunay.
p
![Page 31: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/31.jpg)
31
Influensregion
De trekantene i trianguleringen som har omskrivende sirkler som inneholder p, er ikke lenger er Delaunay-trekanter og må derfor modifiseres.
p
![Page 32: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/32.jpg)
32
Influensregion
p
Alle trekantene i influensregionen til p har p som felles node. Dette utnytter vi når vi skal visualisere influensregioner i TriangTutor.
![Page 33: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/33.jpg)
33
Voronoi-diagram
For hver trekant i trianguleringen beregnes senteret i den omskrivende sirkelen, og sentrene i de omskrivende sirklene til de tre nabotrekantene. Det tegnes så tre Voronoi-kanter mellom disse.
p
![Page 34: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/34.jpg)
34
Voronoi-diagram
p
Dersom trekanten ligger på randen tegner vi en Voronoi-kant som står vinkelrett på randkanten og strekker seg langt vekk fra trianguleringen.
![Page 35: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/35.jpg)
35
Voronoi-diagram
p
![Page 36: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/36.jpg)
36
Senter i omskrivende sirkel
p
Geometrisk sett kan vi finne senteret ved å konstruere midtnormalen til to av kantene i trekanten, og deretter finne skjærings punktet mellom disse.
p1
p2
p3
![Page 37: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/37.jpg)
37
Senter i omskrivende sirkel
Likningen for en sirkel med sentrum (a, b) og radius r:
(x – a)2 (y – b)2 = r2.
x2 – 2ax a2 y2 – 2by b2 = r2.
Siden denne likningen ikke er lineær lar vi q = r2 – a2 – b2
Etter litt omstokking får vi da:
(2x)a (2y)b q = x2 y2,
som er lineær med hensyn på a, b og q. Setter vi inn for de tre punktene p1, p2 og p3 får vi et likningssystem, som kan skrives på matriseform og løses ved hjelp av Cramers regel.
![Page 38: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/38.jpg)
38
Senter i omskrivende sirkel
Løsning:
x = x1 –
y = y1
der dij2 er kvadratet av avstanden mellom to punkter pi og pj:
dij2 = (xj – xi)2 (yj – yi)2.
Disse likningene er numerisk stabile og dessuten raske å beregne på grunn av relativt få divisjoner og multiplikasjoner (brukes av Jonathan R. Shewchuk) .
)))(())(((2
)()(
13121312
22113
23112
yyyyyyxx
dyydyy
)))(())(((2
)()(
13121312
23112
22113
yyyyyyxx
dxxdxx
![Page 39: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/39.jpg)
39
Omskrivende sirkler
Visning av alle omskrivende sirkler for en triangulering med 10 trekanter.
p
![Page 40: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/40.jpg)
40
Omskrivende sirkler
Visning av alle omskrivende sirkler for en triangulering med 40 trekanter.
p
![Page 41: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/41.jpg)
41
Omskrivende sirkler
Visning av omskrivende sirkler for 10 av trekantene i trianguleringen med 40 trekanter.
p
![Page 42: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/42.jpg)
42
Program
• Bakgrunn og motivasjon• Teoretiske begreper og definisjoner• TTL (Triangulation Template Library)• Funksjonalitet i TriangTutor• Programstruktur• Oppsummering og konklusjon• Demo• Spørsmål
![Page 43: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/43.jpg)
43
Programstruktur
• Stort program (nesten 10.000 linjer!)
• Godt dokumentert (doxygen)
• Viktig å dele opp i mindre deler.
• Klasser (17 stk.)
• Verktøygruppe.
• Grafiske objekter (med stort sett samme oppbygning).
![Page 44: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/44.jpg)
44
KlassediagramStatusBar
StatusBar
InfluenceRegionInfluenceRegion
Triangulation2DTriangulation2D
RandomTriangulationRandomTriangulation
MarkedTriangleMarkedTriangle
VoronoiVoronoi
IncrementalTriangulationIncrementalTriangulation
ConvexHullConvexHull
GLSceneGLScene
FrameRateCounterFrameRateCounter
FileTriangulationFileTriangulation
HelpLineHelpLine
ColorTableColorTable
CircumcircleCircumcircle
CameraCamera
TTL TriangulationTTL Triangulation
MarkedTrianglesMarkedTriangles
ApplicationWindowApplicationWindow
![Page 45: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/45.jpg)
45
Grafisk objektclass GraphicalObject {
public:
GraphicalObject(ttl::Triangulation* tri, ColorTable* ct);
~GraphicalObject();
void callDisplayList();
void updateObject();
private:
GLuint createDisplayList();
private:
ttl::Triangulation* triangulation_;
ColorTable* color_table_;
GLuint display_list_;
}
![Page 46: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/46.jpg)
46
Hovedopptegningsfunksjonen 01 resetOpenGL();
02 setCameraPosition()
03 if Triangulation2D != 0
04 if show_nodes
05 Triangulation2D->callNodesDisplayList()
06 Triangulation2D->callConstrainedNodesDisplayList()
07 if show_edges
08 Triangulation2D->callEdgesDisplayList()
09 Triangulation2D->callConstrainedEdgesDisplayList()
10 if show_convex_hull
11 ConvexHull->callDisplayList()
12 if show_influence_region
13 InfluenceRegion->callDisplayList()
14 if show_voronoi_diagram
15 Voronoi->callDisplayList()
16 if MarkedTriangles != 0
17 MarkedTriangles->callDisplayList()
18 if show_marked_circumcircles
19 MarkedTriangles->showCircumcircles()
20 if show_all_circumcircles
21 Circumcircles->callDisplayList()
22 if show_helpline
23 HelpLine->draw()
24 swapBuffers()
![Page 47: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/47.jpg)
47
Program
• Bakgrunn og motivasjon• Teoretiske begreper og definisjoner• TTL (Triangulation Template Library)• Funksjonalitet i TriangTutor• Programstruktur• Oppsummering og konklusjon• Demo• Spørsmål
![Page 48: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/48.jpg)
48
Oppsummering og konklusjon
• Praktisk rettet hovedfagsoppgave, med mye programmering.
• TriangTutor har vært brukt i INF-MAT5370 undervisningen H03 (tidligere versjon) og H04.
• Brukes også som basis for ny hovedfagsoppgave (fotballoppgaven).
• Brukbart verktøy til å lage figurer/illustrasjoner.• Systemkrav: 1 GHz CPU + grafikkort som støtter
antialiasing.
![Page 49: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/49.jpg)
49
Mulige utvidelser
• Implementere skripttolker.• Assosiere høydeverdier til nodene og vise triangulering en
i 3D.• Funksjonalitet for forfining av trianguleringer eller
gridding.• Starte med ”uendelig” stor trekant i stedet for å starte med
et rektangel delt inn i to trekanter.• Lagre figurer som vektorgrafikk (Postscript eller SVG
(Scalable Vector Graphics), som bygger på XML (Extensible Markup Language).
• ”Huske” innstillingene fra gang til gang.
![Page 50: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/50.jpg)
50
Program
• Bakgrunn og motivasjon• Teoretiske begreper og definisjoner• TTL (Triangulation Template Library)• Funksjonalitet i TriangTutor• Programstruktur• Oppsummering og konklusjon• Demo (TriangTutor.exe)• Spørsmål
![Page 51: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/51.jpg)
51
Program
• Bakgrunn og motivasjon• Teoretiske begreper og definisjoner• TTL (Triangulation Template Library)• Funksjonalitet i TriangTutor• Programstruktur• Oppsummering og konklusjon• Demo• Spørsmål
![Page 52: ” Visualisering av trianguleringer og trianguleringsprosesser”](https://reader035.vdocuments.pub/reader035/viewer/2022062719/56813119550346895d977e8d/html5/thumbnails/52.jpg)
52
Takk til :-)
• Veiledere:Morten DæhlenØyvind Hjelle
• Thomas Sevaldrud
• Korrekturlesere:Vera Louise HaugeAnette Gjetnes