Trianguleringer i planet. Preliminaries Notasjon og teminologi Graf-egenskaper med trianguleringer i planet Enkle trianguleringsalgoritmer 1
Punkter og domener. Vi starter med et sett punkter i planet P p i, i 1,,N p i x i,y i. og et domene i planet slik og randen tilfredstiller: P, er ett eller flere enkle lukka polygoner (ikke selvskjærende) Hjørnepunktene i er punkter i P er ofte den konvekse omhylningen til P, for eks. i Delaunay trianguleringer. Ω 2
Hva er en triangulering? Grovt sagt er en triangulering av punktene i P en T dekomponering av i trekanter P T i i1 som ikke overlapper hverandre, og slik at hjørnene i alle T i er punkter i P. Eksempler: 3
Notasjoner og (norske) uttrykk. V, V I, V B Sett av noder, indre noder og randnoder E, E I, E B Tilsvarende for sidekanter (eller kanter ) T Sett av trekanter V, E, T Antall noder, sidekanter og trekanter V I, V B E I, E B V i,e i,t i E i,j T i,j,k Antall indre noder og randnoder V V I V B Tilsvarende for sidekanter E E I E B Node, sidekant, trekant Sidekant mellom noder V i og V j Trekant med V i, V j og V k som noder Alltid definert mot klokka. T, P Triangulering (av P), T i i1 CT i,j,k Omskrivende sirkel til trekant T i,j,k Vi skiller mellom topologi og geometri: Topologi: Noder, sidekanter og trekanter. Geometri: Punkter, kurver, flatelapper 4
Gyldig triangulering 1. Ingen trekant T i,j,k i er degenerert, dvs. p i, p j, og p k er ikke kolineære. 2. IntT i,j,k IntT,, 3. Snittet T i,j,k T,, er en felles sidekant, en felles node eller. T 4. Unionen i1 T i, R 2 Regulær triangulering 5. Domenet (og er sammenhengende 6. (og ) har ingen hull 7. Hvis V i er en randnode i, så er det nøyaktig to randkanter som møtes i V i,dvs.v B E B. Gyldig, ikke regulær Regulær Ikke gyldig 5
Egenskaper ved trianguleringer. Vi kan se på trianguleringer som spesialtilfeller av grafer. Det er følgende samenheng mellom antall noder, kanter og trekanter. Lemma. For en regulær triangulering har vi: T 2V I V B 2 I E 3V I 2V B 3 II E I 3V I V B 3 III T E V 1. IV IV kalles Euler Polyhedron formelen, (eller Euler-Poincaré) 6
Bevis av I. Trivielt hvis T 1; daerv I 0 og V B 3. Induksjon: Anta T 2 og at en trekant T i fjernes fra slik at også er regulær. Vi har to tilfeller: 1. T i har kun en randkant i ; V I V I 1, ogv B V B 1. Anta at I holder for : T T 1 2V I V B 2 1 2V I 1 V B 1 2 1 2V I V B 2. 2. T i har to randkanter i ; V I V I, ogv B V B 1 Anta at I holder for : T T 1 2V I V B 2 1 2V I V B 1 2 1 2V I V B 2. (Bevis av II og III er øvinger.) 7
Bevis av IV. (IV) følger ved å kombinere (I), (II) og V V I V B : T 2V I V B 2 3V I 2V B 3 V I V B 1 E V 1. Nyttige observasjoner: Antall sidekanter og trekanter avhenger av randen Hvis vi setter inn en indre node økes T med2oge med 3. 8
Nedre og øvre grenser for T og E uttrykt i antall noder i. Lemma. For en regulær triangulering har vi: V 2 T 2V 5 2V 3 E 3V 6. Bevis. Vi bruker følgende: I og II V V I V B V B 3 V B V T 2V I V B 2 2V I V B V B 2 2V V B 2 E 3V I 2V B 3 3V I V B V B 3 3V V B 3 og resultatene følger. 9
Definisjon. Graden til en node V i, degv i,ien triangulering er antall sidekanter som møtes i V i. (degree or valency). Lemma (Grad-sum). For en triangulering (regulær eller ikke) har vi V i1 degv i 2E. Bevis. Trivielt; i en gyldig triangulering bidrar hver sidekant med 2 til grad-summen. Når V er stor og er den konvekse omhylningen til P, vil vi ha at V V B. Da får vi følgene nyttige uttrykk for gjennomsnittlig grad-sum (average valence). V i1 degv i 2E 23V I 2V B 3 6V 2V B 6 6V 10
Under de samme betingelsene, V V B,fårvifor antall trekanter og antall sidekanter: T 2V I V B 2 2V V B 2 2V E 3V I 2V B 3 3V V B 3 3V Estimatene over er nyttige når vi skal estimere: CPU-tid for algoritmer, spesielt traversering lagringsbehov for datastrukturer. Ellers, ved allokering av minne. 11
Enkel trianguleringsalgoritme 1. Gitt randen til som et lukka polygon. 2. Triangulerer settet av randnoder V B 3. Setter inn indre punkter (noder) 4. Setter inn predefinerte sidekanter Definisjon. Et punkt p i i et enkelt lukka polygon P p 1,p N kalles fremskutt (protruding) dersom 1. Den indre vinkelen ved p i i trekanten T i1,i,i1 er mindre enn. (Konvensjon: p N1 p 1 ) 2. Trekanten T i1,i,i1 inneholder ingen punkter fra P utenom p i1, p i,ogp i1. Det kan vises at et hvert lukka polygon har minst to fremskutte punkt. 12
(a) T i-1,i,i+1 (b) p i+1 p i 1 p i-1 (c) (d) 3 2 1 2 1 (e) 4 3 (f) 4 3 2 1 5 2 1 8 7 6 13
Algoritme I Triangulering av et enkelt lukka polygon P. 1. Finn et fremskutt punkt p i i P p 1,,p N ; figur (a) 2. Lag en sidekant E i1,i1 av punktene p i1 og p i1 og lag trekanten T i1,i,i1. La P p 1,,p N \ p i være det nye polygonet med N 1 punkter; figur (b) 3. If N 3, dvs. hvis P er en enkelt trekant STOP; figur (f) 4. GOTO 1. 14
Algoritme II Innsetting av et punkt p i i en triangulering. 1. Lokaliser en trekant T i ; p i T i 2. If p i IntT i erstatt T i med tre nye trekanter: figur (a) else if p i IntE i ; E i er en kant i T i erstatt T i og naboen til T i med fire trekanter; figur (b). (a) (b) p i p i E i T i T i 15
Algoritme I, og Algoritme II for alle p i, giren regulær triangulering i følge definisjonen over. Observasjon Antall trekanter og sidekanter økes med 2 og 3 for hvert punkt som settes inn med Algoritme II; jfr. ligning I og II. 16
Triangulering med føringer (Constrained triangulation) Med føringer menes predefinerte sidekanter som skal være med i. Anvendleser: Representasjon av elver, veier og geologiske forkastninger i terrengmodeller. Representasjon av features i DAK-modeller. Predefinerte kanter stiller krav til datastrukturer og algoritmer som må håndtere disse til lavest mulig kostnad. Teorien for Delaunay-trianguleringer er utvidet til å håndtere føringer. 17
Algoritme III. Innsetting av en predefinert sidekant (constrained edge) Gitt en predefinert sidekan E i,j.antaat endepunktene p i og p j er satt inn i med Algoritme II. 1. For alle T i i, If IntT i E ij, fjern T i fra Vi får en eller flere regioner R i på hver side av E i,j innenfor enkle lukka polygoner. (Mer enn en hvis E i,j skjærer kanter i endepunkter.) 2. Trianguler hver region R i med Algoritme I. 18
(a) E i,j p j p i (b) E i,j p j p i Innsetting av E i,j. 19
Algoritmer: Observasjoner Siden antall noder V B på randen er konstant, har vi full kontroll over antall trekanter T og antall sidekanter, E og E I i henhold til ligningene I IV. Passende datastrukturer/topologistrukturer med naboskapsinformasjon er nødvendig for å unngå worst case CPU-tid ON 2, for eks. ved lokaliserng av en trekant T i i slik at p i T i. P er ikke entydig; for eks., i Algoritme I avhenger av hvilken rekkefølge fremskutte punkter behandles. Vi skal senere se på en spesiell type triangulering, Delaunay, som er (nesten) entydig. 20
Swapping/Flipping/(Exchange) Swapping er en viktig operasjon på sidekanter i en triangulering. V 2 V 3 E 2,4 E 3,1 V 4 V 1 T 1,2,3, T 1,3,4 T 1,2,4,T 2,3,4 21
Swapping... Kan kun utføres på sidekanter som er diagonaler i strengt konvekse quadrilateraler. Men kan repeteres - det kan vises at: alle mulige trianguleringer av P kan nås via en sekvens av swaps. (Det er et endelig antall trianguleringer av P). Mange trianguleringsalgoritmer er basert på swapping. Kan benyttes for å optimere trianguleringer. Swapping kan gjøres etter ulike kriterier. Hvis vi bruker Delaunay kriterier vil vi til slutt få en Delaunay triangulering som er (nesten) entydig. 22
Swapping: Eksempel Triangulering før a og etter b swapping av to sidekanter. (a) (b) Observasjon: a har flere smale trekanter enn b Smale trekanter kan gi numeriske problemer i (geometriske) algoritmer. 23