Академический Документы
Профессиональный Документы
Культура Документы
Triangolazione di Delaunay
Stefano Rebay
stefano.rebay@ing.unibs.it
MO X
Bibliograa
George, P.L. (1998). Delaunay triangulation and Meshing Editions HERMES. Weatherill N.P. (?)
Ringraziamenti Il materiale qui presentato stato in gran parte realizzato nel corso di una collaborazione con A. Ghidoni (Universit di Brescia) E. Pellizzari, V. Selmin (Alenia Aeronautica, Torino)
3D Unstructured Anisotropic Grid Generation in corso di pubblicazione su International Journal for Numerical Methods in Fluids
Sommario
Triangolazione di Delaunay 1. Denizioni e principali propriet della triangolazione di Delaunay; 2. Algoritmi per generare la triangolazione di Delaunay in 2D e in 3D; 3. Griglie di calcolo: triangolazione di Delaunay vincolata in 2D e in 3D; 4. Triangolazione di Delaunay Anisotrope in 2D e in 3D; 5. Generazione automatica di griglie di Delaunay in 2D; 6. Generazione automatica di griglie di Delaunay superciali; 7. Generazione automatica di griglie di Delaunay in 3D;
Ad ogni punto P i associata una regione dello spazio V i La regione V i il luogo dei punti X i tali che d (X i , P i ) < d (X i , P j ), j = i.
Il vertice del diagramma di Voronoi appartenente a tre regioni V i , V j e V k equidistante dai tre punti P i , P j e P k e quindi coicide con il centro del cerchio passante per i quei tre punti
Triangolazione di Delaunay in 3D
Le tessellazioni di Dirichelt e le triangolazioni di Delaunay si estendono naturalmente al caso N dimensionale In 3D le regioni di Voronoi sono dei poliedri delimitati da facce poligonali equidistanti da punti contigui. Le facce poligonali si intersecano lungo spigoli che sono equidistanti da tre punti contigui a due a due. Gli spigoli si incontrano in vertici che sono equidistanti da quattro punti, e quindi conicidono con il centro della sfera passante per quei quattro punti. La triangolazione di Delaunay si ottiene connettendo punti contigui Dualit: punto della triangolazione di Delaunay regione di Voronoi spigolo della triangolazione di Delaunay faccia di Voronoi. faccia della triangolazione di Delaunay spigolo di Voronoi. tetraedro di Delaunay vertice di Voronoi
Caso degenere: esistono quattro o pi punti concentrici; in tal caso vi sono due o pi vertici di Voronoi coincidenti, e la triangolazione di Delaunay non univocamente determinata.
Inserzione punti
Inserzione punti
Guscio convesso
Algoritmo di Bowyer-Watson
Linserimento di un nuovo punto P in una triangolazione di Delaunay T consiste essenzialmente in due passi:
n
1. Costruzione della cavit. La cavit C linsieme dei triangoli di T n il cui cerchio circoscritto contiene il punto P. I triangoli della cavit devono essere eliminati da T n perch violano la proprieta del cerchio circoscritto. C gode delle seguenti propriet: C un insieme semplicemente connesso Il punto P contenuto in C Qualsiasi segmento che unisce il punto P con un arbitrario punto di contorno di C contenuto completamente in C. (qualsiasi raggio spiccato da P interseca il contorno della cavit in un solo punto). Si dice che C un insieme stellato rispetto al punto P 2. Riconnessione. La triangolazione di Delaunay T n+1 si ottieme connettendo il punto P con i punti P k appartenenti al contorno della cavit. Lalgoritmo direttamente applicabile in 3D
Cavit
Cavit
Riconnessione
Metodo di Green-Sibson in 2D
Per descrivere il metodo di Green-Sibson necessario denire una trasformazione locale di una triangolazione detta trasformazione lato-lato Si consideri una coppia di triangoli T1 e T2 e il lato in comune tra i due La trasformazione lato-lato consiste nelleliminare dalla triangolazione il lato e sostituirlo con il lato che connette i due punti che non sono estremi di La trasformazione lato-lato geometricamente ammissibile solo se il quadrilatero formato da T1 T2 convesso
g replacements T1
T2
Q1 Q2
Metodo di Green-Sibson in 2D
Linserimento di un nuovo punto P in una triangolazione di Delaunay T consiste essenzialmente in tre passi:
n
1. Costruzione della base. La base coincide con il triangolo che contiene il punto P (o con due triangoli adiacenti se P giace su un lato della triangolazione). 2. Riconnessione: Si ottiene una triangolazione temporanea (non di Delaunay) connettendo P con i punti P k appartenenti al contorno della base. 3. Trasformazione: per tutti i triangoli che hanno un vertice coincidente con P e che non soddisfano la propriet del cerchio circoscritto, si effettua una trasformazione lato-lato con il lato del triangolo opposto a P, ntanto che tutti i nuovi triangoli soddisfano alla propriet del cerchio circoscritto. La generalizzazione al caso 3D non immediata (trasformazione lato-lato = ?)
Lato-Lato 1
Lato-Lato 1
Lato-Lato 2
Lato-Lato 1
Lato-Lato 2
Lato-Lato 3
Trasformazioni locali in 3D
Faccia-Spigolo: si elimina la faccia comune a due tetraedri e la si sostituisce con uno spigolo che connette i due punti non possieduti dalla faccia. I due tetraedri iniziali vengono eliminati e si generano tre tetraedri che hanno il nuovo spigolo in comune. Spigolo-Faccia: si elimina uno spigolo comune a tre tetraedri e lo si sostituisce con la faccia che connette i tre punti non posseduti dalla spigolo. I tre tetraedri iniziali vengono eliminati e si generano due tetraedri che hanno la nuova faccia in comune. Faccia-Spigolo
E
Spigolo-Faccia
E E
A A C
A A B B
C C
A D B B
D D
Implementazione
Implementazione dellalgoritmo di Bowyer-Watson: efcienza e robustezza 1. Efcienza Costo computazionale Struttura dati per la rappresentazione della triangolazione 2. Robustezza Triangolazioni degeneri Algoritmo di Bowyer con correzione della cavit
P A B
Trucco per la costruzione sicura della cavit in 2D: Inizializzazione: Cavit = Base Ricerca di vicino in vicino partendo dalla base: Cavit = Cavit + triangoli che violano il criterio del cerchio circoscritto Un triangolo che NON viola il criterio del cerchio circoscritto impedisce la propagazione della Cavit In 3D il trucco non funziona: possibile girare attorno ad un triangolo NON cancellato
PSfrag replacements P5 P1 P P P2
0 0 100
Triangolazione di Delaunay p. 30/66
4.27 62.55
Triangolazione vincolata
Denizioni 1. Per vincolo si intende un insieme di lati (2D) o di facce (3D) 2. Per triangolazione vincolata (di Delaunay o meno) si intende una triangolazione in cui sono presenti i lati (facce) del vincolo. La triangolazione di Delaunay risulta automaticamente vincolata se il vincolo soddisa ad opportune condizioni di regolarit. Infatti, dato che in una triangolazione di Delaunay vengono connessi punti vicini (nel senso di punti i cui domini di Voronoi hanno un lato in comune), la triangolazione di Delaunay risulter vincolata solo se gli estremi dei lati o delle facce del vincolo sono sufcientemente vicini gli uni agli altri (il vincolo tto). Esistono quindi sostanzialmente due strade per arrivare ad una triangolazione vincolata: 1. Modicare il vincolo in modo che la triangolazione di Delunay risulti automaticamente vincolata (inttire i nodi di contorno) 2. Modicare la triangolazione di Delauny (che non risulter quindi pi essere di Delaunay) in modo che rispetti il vincolo
Triangolazione vincolata in 2D
In 2D il vincolo consiste in un insieme di lati, e il suo soddisfacimento si ottiene facilmente, sia rendendo ammissibile il vincolo (suddivisione del lato mancante in sottosegmenti e ritriangolazione) che modicando la triangolazione (vedi gura)
A
(1)
A B
B D A
B
(2) (3)
C D
Triangolazione vincolata in 2D
Algoritmo delle trasformazioni lato-lato: 1. trova il tubo di triangoli che non soddisfano al vincolo 2. esegui una trasformazione lato-lato per il lato opposto al triangolo del tubo che possiede uno dei due estremi del lato vincolato 1
ements A
Triangolazione vincolata in 2D
Algoritmo delle trasformazioni lato-lato: 1. trova il tubo di triangoli che non soddisfano al vincolo 2. esegui una trasformazione lato-lato per il lato opposto al triangolo del tubo che possiede uno dei due estremi del lato vincolato 1 PSfrag replacements A B 2
ements A
Triangolazione vincolata in 2D
Algoritmo delle trasformazioni lato-lato: 1. trova il tubo di triangoli che non soddisfano al vincolo 2. esegui una trasformazione lato-lato per il lato opposto al triangolo del tubo che possiede uno dei due estremi del lato vincolato 1 PSfrag replacements A B 2 PSfrag replacements A B 3
ements A
Triangolazione vincolata in 2D
Algoritmo delle trasformazioni lato-lato: 1. trova il tubo di triangoli che non soddisfano al vincolo 2. esegui una trasformazione lato-lato per il lato opposto al triangolo del tubo che possiede uno dei due estremi del lato vincolato 1 PSfrag replacements A B 2 PSfrag replacements A B 3
ements A
ements A
Triangolazione vincolata in 2D
Algoritmo delle trasformazioni lato-lato: 1. trova il tubo di triangoli che non soddisfano al vincolo 2. esegui una trasformazione lato-lato per il lato opposto al triangolo del tubo che possiede uno dei due estremi del lato vincolato 1 PSfrag replacements A B 2 PSfrag replacements A B 3
ements A
4 PSfrag replacements A B
ements A
Triangolazione vincolata in 2D
Algoritmo delle trasformazioni lato-lato: 1. trova il tubo di triangoli che non soddisfano al vincolo 2. esegui una trasformazione lato-lato per il lato opposto al triangolo del tubo che possiede uno dei due estremi del lato vincolato 1 PSfrag replacements A B 2 PSfrag replacements A B 3
ements A
4 PSfrag replacements A B
5 PSfrag replacements A B
ements A
Triangolazione vincolata in 3D
In 3D lottenimento di una triangolazione vincolata tuttaltro che banale Modica del vincolo: il vincolo costituito in 3D da un insieme di spigoli e facce. E possibile suddividere gli spigoli e le facce mancanti e poi ritriangolare, ma di fatto la necessit di inttimento tende a propagarsi a spigoli e lati del vincolo adiacenti. Alla ne il numero di punti da inserire notevole e la costruzione della triangolazione vincolata risulta molto costosa dal punto di vista computazionale. Modica della triangolazione: contrariamente al caso 2D non detto che in 3D la cosa sia sempre possibile. Esistono infatti esempi (Shnhart) di poliedri che NON possono essere suddivisi in tetraedri a meno di non aggiungere punti di Stenier (interni). Il numero minimo di punti di Steiner richiesti per rendere possibile la triangolazione vincolata in 3D non noto. Non sono nemmeno noti algoritmi efcienti per determinare la posizione dei punti di Steiner. Metodo euristico: modicare la triangolazioni in modo da suddividere oppure da eliminare spigoli e facce che intersecano gli spigoli e/o le facce vincolate mancanti (vedi esempio 2D)
In pratica il problema di specicare la funzione a valore matriciale M(x) e tuttaltro che banale . . .
r i sono D autovettori di lunghezza unitaria e ortogonali tra loro = diag(i ) la matrice degli autovalori i reali e positivi Matrice di trasformazione: p p T (x) = M(x) = R(x) (x)R(x)T M(x) = T (x)T (x)T
T trasforma un lato v di lunghezza unitaria in M in un lato w = T v di lunghezza unitaria nellusuale spazio euclideo p Tw = T (T v) = (T v) v T Mv = ||v||M ||w|| = w
T =
1 i
T i
T =
D X i=1
r i i r T i
Confrontando si ricava il legame tra autovettori, autovalori, direzioni e spaziature 1 r i i i i Note le direzioni i e le spaziature i si ricava M
in cui (s) la geodetica che passa per x 1 e x2 parametrizzata con un parametro s in modo che (0) = x1 e (1) = x2 . Il calcolo della distanza nel caso di spazio Riemanniano richiede il calcolo della curva (s)
Metrica costante
La formulazione precedente non di utilizzo pratico a causa della sua complessit Se la metrica non dipende da x allora la geodetica il segmento (rettilineo) congiungente i punti x1 e x2 e il calcolo della distanza Riemanniana si riduce a dM (x1 , x2 ) = p (x2 x1 )T M((s))(x2 x1 ) = ||(x1 x2 )| |M
Nel caso di metrica costante, il luogo dei punti equidistanti da un punto dato , nellordinario spazio Euclideo, unellisse i cui assi sono orientati come gli autovettori della matrice M. La triangolazione di Delaunay pu essere facilmente generalizzata sostituendo al criterio del cerchio circoscritto il criterio dellellisse circoscritto
Si noti che la cavit cos ottenuta possiede tutte le proprit richieste ed in particolare stellata rispetto al punto P (cerchio e ellisse sono entrambi gure convesse)
O K il punto equidistante dai tre vertici del triangolo Kil centro del cerchio circoscritto a Ke r K il raggio del cerchio circoscritto. Se P K,i sono i D + 1 vertici del triangolo K, O K soluzione del sistema lineare d (P K,1 , O K ) = d (P K,2 , O K ) = = d (P K,D+1 , O K ) Violazione del criterio del cerchio circoscritto (P, K) < 1
in cui O K e r K sono calcolati con loperatore dM (, ), ovvero sono soluzione delle D + 1 equazioni algebriche lineari dM (P K,1 , O K ) = dM (P K,2 , O K ) = = dM (P K,D+1 , O K ) Violazione del criterio del cerchio circoscritto M (P, K) < 1
M(P) +
In pratica questa funzione ottenuta utilizzando una griglia, detta griglia di background, sul quale viene interpolata la metrica La griglia di background deve contenere il dominio La griglia di background non deve necessariamente essere conforme al contorno Vi sono molti tipi di griglie di background Quadtree (Octree) Reticolo regolare (carta a quadretti) Reticolo arbitrario denito dallutente Reticolo corrente nel processo di generazione iterativo ...
Generazione dei punti interni La generazione avviene lungo un fronte che si propaga a partire dal contorno e muovendosi allinterno del dominio. Il fronte rappresenta linterfaccia tra triangoli accettabili e non accettabili (rispetto alla spaziatura richesta). I triangoli non accettabili adiacenti al fronte sono detti attivi. Inizialmente tutti i triangoli esterni al dominio sono etichettati come accettabili. I punti vengono generati in corrispondenza del lato che separa triangoli accettabili e non accettabili. Dopo linserimento del nuovo punto P, i nuovi triangoli (quelli che possiedono P come loro vertice) vengono suddivisi in accettabili e non. In questo modo il fronte si propaga. La procedura viene iterata ntanto che tutti i triangoli sono accettabili.
Triangolazione di Delaunay p. 52/66
E necessario controllare che P non risulti troppo vicino ad altri punti, ovvero che non si formino connessioni di lunghezza d M << 1.
Vi sono fondamentalmente due varianti del metodo 1. Generazione di un punto alla volta in corrispondenza del lato del fronte di lunghezza (nellusuale spazio Euclideo!) minima. 2. Generazione di un punto per ogni lato del fronte Nel primo caso necessario luso di una opportuna struttura dati per accedere in modo efciente al lato del fronte da processare Nel secondo caso, essendoci pi punti da inserire, necessario controllare che tali punti non siano troppo vicini tra di loro. Questa operazione detta ltraggio dei punti. Per efciente il ltraggio serve anche in questo caso una opportuna struttura dati.
Generazione dei punti interni La generazione avviene lungo le congiungenti i punti connessi (lati dei triangoli in 2D, spigoli dei tertraedri in 3D) della triangolazione. I punti sono distribuiti in modo da suddividere le congiungenti in sottosegmenti di lunghezza approssimativamente unitaria nella metrica di controllo). Per ogni lato (spigolo) necessario Calcolare la lunghezza LM del lato (formule di quadratura). Numero di sottosegmenti: Ns = N IN T (LM ) Lunghezza dei sottosegmenti Ls = LM /Ns Prima di connettere i punti cos generati occorre unoperazione di ltraggio simile a quella descritta in precedenza. Uno degli aspetti interessanti di questo metodo che rimane pressoch inalterato in 2D e in 3D.
Generazione superciale
Supercie in forma parametrica: x = x(u, v) Il reticolo viene generato in uv e poi mappato in xyz Una triangolazione controllata dalla curvatura della supercie tale per cui la massima distanza tra i lati della triangolazione e la supercie sia minore di un valore assegnato Caso di una curva: se si considera il cerchio osculatore e la corda di tale cerchio di lunghezza , esiste un legame tra , il raggio del cerchio, e la distanza massima della corda dal cerchio s 2 =2 La relazione precedente permette di ricavare la spaziatura nota la curvatura della curva () e il parametro = / che misura quanto bene si vuole rappresentare la curva. Per una supercie si ragiona in modo analogo lungo le direzioni di minima e massima curvatura della supercie.
Generazione in 3D
Dato di partenza 1. Griglia superciale 2. Controllo della spaziatura nel volume (ottenuto utilizzando come griglia di background la triangolazione vincolata vuota e punti addizionali per circoscrivere linuenza dei contorni). Inserzione dei punti del dominio: metodo del fronte avanzante oppure metodo dellinserimento sugli spigoli