I principali vincoli del tuo problema sono duplici: creazione di un grafico a 1 connessione; e crearlo con connessioni prossimali. La risposta di Philip, sebbene in qualche modo preziosa, non affronta tutti i vincoli del tuo problema
Idealmente, un wormhole non dovrebbe superare una lunghezza massima e, se possibile, i wormhole non dovrebbero incrociarsi.
Quando si collegano in modo ingenuo i punti in una nuvola, si corre il rischio (e quello elevato, a quello) di queste condizioni che non vengono soddisfatte.
Come vedi, il problema non è tanto quello della connettività quanto quello della prossimità su quelle connessioni. È banale connettere tutti i nodi di un grafico a tutti gli altri nodi, ma collegarsi solo a quelli più vicini pur mantenendo l'1-connessione del grafico complessivo è un po 'più complicato.
Questo è ciò che crea una triangolazione Delaunay , in n dimensioni. Il primo motivo per usare la triangolazione di Delaunay è che soddisfa entrambi implicitamente. Il secondo motivo è che è molto più semplice lavorare all'indietro da un tale grafico (sottraendo bordi e vertici che non si desidera), piuttosto che provare a crearlo in altri modi.
- Crea in modo casuale la nuvola di punti completa.
- Delaunay-triangolarlo.
- Costruisci il grafico (connessione dei punti). In questo, è possibile generare prima l'intero grafico (ogni stella) e quindi derivare il grafico come minori rappresentano le regioni collegate al wormhole, quando si esegue il passaggio 4. In alternativa, è possibile lavorare al contrario, generando solo le regioni connesse al wormhole prima come nodi del supergrafo, e poi in una seconda fase, generano singole stelle all'interno dei volumi limitanti di quelle regioni (per queste deriverei il grafico della triangolazione di Delaunay doppio - il diagramma di Voronoi in 3 dimensioni) come sottografie. Ora disponi di ammassi stellari collegati prossimalmente e tutti gli ammassi sono collegati da wormhole più rari: la tua topologia e topografia hanno senso per il giocatore.
- Applica metodi intelligenti per modellare i super e i sottografi, a seconda di come hai scelto di trattarlo nel passaggio 3.
È importante vedere che questo è un processo gerarchico. Il primo livello riguarda la connettività wormhole; la seconda riguarda le distanze presumibilmente percorribili usando una nave standard. Puoi applicare Delaunay a uno o entrambi i livelli per soddisfare i tuoi vincoli.
Fare questo puramente topologicamente ti lascerà con wormhole che non hanno senso, dal momento che potrebbero collegare un lato della galassia a un altro, nonostante un'alta densità di stelle tra di loro (e forse anche cadere sulla rotta diretta del wormhole). La topologia non è topografia; la seconda è una considerazione che va oltre la prima. Ti preoccupi della prossimità e quindi della topografia.