Domanda

Esiste un modo banale, o almeno moderatamente semplice, per generare mappe del territorio (ad es.Rischio)?

Ho cercato nel passato e il meglio che ho trovato erano vaghi riferimenti ai diagrammi di Voronoi.Un esempio di diagramma di Voronoi è questo:

here.

Questi sono promettenti, ma immagino di non aver visto alcun modo semplice per renderli, per non parlare di tenerli in una qualche forma di struttura dati per trattare ciascun territorio come un oggetto.

Un altro approccio promettente è il riempimento delle inondazioni, ma ancora una volta non sono sicuro del modo migliore per iniziare con questo approccio.

Qualsiasi consiglio sarebbe molto apprezzato.

È stato utile?

Soluzione

Il miglior riferimento che ho visto su di loro è Geometria computazionale:Algoritmi e applicazioni, che copre i diagrammi di Voronoi, le triangolazioni di Delaunay (simili ai diagrammi di Voronoi e ciascuno può essere convertito nell'altro) e altre strutture dati simili.

Parlano di tutte le strutture dati di cui hai bisogno ma non ti danno il codice necessario per implementarle (il che potrebbe essere un buon esercizio).In termini di codice, una ricerca su Amazon mostra il libro Geometria computazionale in C, che presumibilmente viene fornito con il codice (anche se dal momento che sei bloccato in C, ti dispiacerebbe anche prendere l'altro e implementarlo nella lingua che desideri).Inoltre non ho alcuna esperienza con questo libro, solo il primo.

Mi dispiace avere solo libri da consigliare!Le uniche risorse online decenti che ho visto su di loro sono le due Wikipedia articoli, che in realtà non ti dice i dettagli di implementazione. Questo link potrebbe essere utile però.

Altri suggerimenti

Perché non utilizzare una mappa di primitive (triangoli, quadrati), distribuire i punti di partenza per i paesi (le "capitali") e quindi espandere casualmente i paesi aggiungendo una primitiva adiacente casuale al paese.

CGAL è una libreria C++ che contiene strutture dati e algoritmi utilizzati nella geometria computazionale.

In realtà mi sto occupando esattamente di questo genere di cose per il videogioco della mia azienda.Le informazioni più utili che ho trovato sono a questi due link:

Paolo Bourkealla UWA, con il suo articolo del 1989 su Delaunay e una serie di collegamenti di implementazione.

UN ottima spiegazione dello pseudocodice e immagine di fare Delaunay su codeGuru.com.

In termini di rendering, la maggior parte delle implementazioni che ho trovato avranno bisogno di essere massaggiate per ottenere ciò che desideri, ma poiché usarlo per una mappa di gioco porterebbe a un numero di punti più linee tra di loro, potrebbe essere molto è una cosa semplice da fare e disegnarlo sullo schermo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top