2011-01-19 4 views
14

Apprezzerei molto se qualcuno che avesse mai a che fare con l'algoritmo di Fortune per generare le triangolazioni di Delauney mi avesse presagito uno pseudo-codice piuttosto basso dell'algoritmo! Ho letto quello su wikipedia, ma è un po 'confuso e sembra di alto livello, e qualsiasi pezzo di codice che ho trovato ha avuto le incongnienze dell'implementazione C originale.Pseudo-codice per l'algoritmo di Fortune

Mi piacerebbe implementarlo in C++, ma in un modo che l'output generato sia sotto forma di (mie) classi che userò (vertici, bordi e triangoli come oggetti). Quindi ho bisogno di capire tutto e di integrarlo da zero.

Ho letto anche la descrizione dell'algoritmo, e so cosa fa e come, ma questo è ancora astratto per me adesso. Tuttavia, sarei anche contento di una descrizione simile inserita nei dettagli (di implementazione), non deve essere simile al codice!

Grazie in anticipo,

Vincent

+1

C'è una buona ragione per non utilizzare CGAL? La triangolazione di Delaunay è molto difficile da ottenere: gli errori di arrotondamento che si incontrano rovineranno qualsiasi implementazione che non usi l'aritmetica adattativa di precisione. –

+0

L'unica ragione è che in qualche modo non ne ho mai sentito parlare prima :) Questo sembra davvero molto promettente, a parte la licenza commerciale per usi commerciali, ma suppongo che sia OK. Ci giocherò un po 'per vedere se si adatta abbastanza bene alle mie esigenze, ma se nessuno presenta uno pseudocodice piacevole ed è davvero così difficile da implementare, potresti voler ripetere questo come una risposta che posso segnare come migliore ! – Vincent

risposta

22

mi c'è voluto circa un mese per comprendere appieno l'algoritmo di fortuna, ho scritto il mio lavoro scolastico seminario su di esso. Quando capisci, sembra molto facile :)

Ecco il mio description of Fortune's algorithm, con imperativo pseudocodice e dettagli di implementazione.

+0

Grazie mille, sembra esattamente quello che sto cercando! Presto un'occhiata più da vicino, ma credo che sia così, quindi lo contrassegnerò come una risposta :) – Vincent