La struttura dati quad-edge (Delaunay / Voronoi)


18

2 domande per i geometri computazionali o algebristi:

Sto appena iniziando ad immergermi nella geometria computazionale e lo adoro =)

Sto tentando di leggere il famoso articolo di Guibas e Stolfi intitolato "Primitivi per la manipolazione di suddivisioni generali e il calcolo dei diagrammi di Voronoi" al fine di implementare un algoritmo di triangolazione Delaunay. Sono tentato di saltare tutte le cose teoriche e di leggere la descrizione della loro struttura di dati quad-edge per risparmiare tempo. Tuttavia, penso che valga la pena capire tutta la matematica nell'articolo se la struttura è ampiamente utilizzata o semplicemente perché può essere bella.

La matematica è un po 'densa per me. Non sono del tutto ignaro della topologia, ma la descrizione della loro algebra marginale richiede la conoscenza dell'algebra astratta che non ho.

Le mie due domande sono: quali altre applicazioni della struttura quad-edge ci sono oltre al calcolo Delaunay / Voronoi? Sembra uno strumento estremamente potente.

La seconda domanda; Che cos'è un'algebra astratta? Sarebbe bello se potessi darmi un riferimento a un'introduzione all'algebra astratta, quel tanto che basta per capire la sezione sulla loro algebra marginale.

Grazie!


3
Solo per colmare le lacune: l'algebra astratta è lo studio di insiemi di elementi che rispettano determinate regole. Come avrai intuito, le regole che soddisfano questi insiemi sono proprietà come chiusura, elementi di identità, esistenza di inversioni uniche e man mano che procedi commutatività, associatività, ecc. È lo studio dell'algebra su insiemi che non si comportano necessariamente come i numeri reali (un buon esempio sono le permutazioni).
Ross Snider,


Immagino che la mia seconda domanda fosse un po 'sbagliata. Conosco una teoria di gruppo. So cosa sono un anello e un campo. E 'solo che in questo articolo definiscono un algebra astratta: "Un algebra bordo è un estratto Algebra (E, E *, Onext, Rot, Flip) proprietà che soddisfano E1-E5 e F1-F5"
bigmonachus

[...] e non ho idea di cosa significhi. Non è un'algebra su un campo, vero?
bigmonachus,

Risposte:


32

Penso che il formalismo "edge algebra" di Guibas e Stolfi sia un po 'inutile.

Tutto ciò che è veramente necessario è ricordare la distinzione tra grafici primari e doppi. Ogni faccia del grafico primario ha un corrispondente doppio vertice f ; ciascun bordo e del grafico primario ha un bordo doppio corrispondente e ; e ogni vertice v del grafico primario ha una corrispondente doppia faccia v . I bordi primari collegano vertici primari e facce primarie separate; i bordi doppi collegano i vertici doppi e le facce doppie separate. Il duale del duale di qualsiasi cosa è la cosa originale. Vedi la Figura 4 nel documento di Guibas e Stolfi:ffeevv

Grafici primari e doppi

etail(e)head(e)left(e)right(e)tail(e)left(e)

e

  1. tailNext(e)tail(e)e
  2. flip(e)eleft(e)right(e)
  3. rotate(e)e

tailNext, rotate, and flip

Queste tre funzioni soddisfano ogni sorta di meravigliose identità, come le seguenti:

  • right(tailNext(e))=left(e)
  • right(flip(e))=left(e)
  • right(rotate(e))=head(e)
  • flip(flip(e))=e
  • rotate(rotate(rotate(rotate(e))))=e
  • tailNext(rotate(tailNext(rotate(e))))=e

e Flipe.Flip

Inoltre, date queste tre funzioni, si possono definire diverse altre funzioni utili come

  • reverse(e)=rotate(flip(rotate(e)))
  • leftNext(e)=rotate(tailNext(rotate(rotate(rotate(e)))))eleft(e)

Infine, conoscendo queste funzioni puoi dire assolutamente tutto sulla topologia della suddivisione e qualsiasi suddivisione poligonale di qualsiasi superficie (orientabile o meno) può essere codificata usando queste tre funzioni.

La struttura dati quad-edge è una rappresentazione particolarmente conveniente di un grafico di superficie che fornisce l'accesso a tutte queste funzioni, insieme a molte altre operazioni a tempo costante come l'inserimento, l'eliminazione, la contrazione, l'espansione e il ribaltamento dei bordi; dividere o unire vertici o facce; e aggiunta o eliminazione di handle o maiuscole.

Divertiti!


Ho usato OmniGraffle.
Jeffε
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.