Come organizzare i punti su una sfera in contenitori e navigare tra i contenitori?

2

Ho difficoltà a trovare un modo adeguato per navigare attraverso un insieme di coordinate stellari nel Sistema di coordinate equatoriali . Il mio obiettivo è visualizzare quelli che si trovano all'interno di un determinato intervallo di coordinate orizzontali . Il display è quadrato con una "lunghezza" di circa 10 gradi in ciascuna direzione.

Ho pensato di raggruppare le stelle in gruppi di ascensione e declinazione destra sufficientemente grande (ma abbastanza piccola), in modo da poter visualizzare uno o più contenitori alla volta sul display (uno se il display mostra il centro di una bin, quattro se il display mostra il punto che collega i contenitori adiacenti). Il binning è semplice, ma come posso navigare tra i contenitori per selezionare quelli giusti per il display? Questo sembra essere un problema attorno ai poli, dove molti contenitori si toccano.

L'applicazione viene scritta in C ++ e dovrà essere eseguita su un microcontrollore, quindi le risorse (tempo di memoria e CPU) sono molto limitate. Le coordinate possono essere lette da una scheda SD e il formato può essere personalizzato, quindi se l'algoritmo impone dei vincoli, va bene.

Altre riflessioni:

  • Anche le tessere che dividono la sfera celeste in bidoni hanno dimensioni costanti (non necessariamente uguali) e sono generate insieme alla struttura di ricerca.
  • il tempo di inserimento non è importante. La struttura utilizzata per trovare il cestino giusto non cambia durante il runtime e può essere caricata dalla scheda SD alla RAM all'avvio.
  • La parola che mi mancava era "tiles". Gamedev SX ha un [tile] tag e ci sono alcune domande e risposte lì; Ne darò un'occhiata.

E un altro:

L'analisi del tag Gamedev [tiles] non ha rivelato molto che potrei usare per le coordinate sferiche. Sembra anche che non conosca abbastanza bene la teoria sottostante per trovare una soluzione adeguata. Un'altra idea che ho avuto è stata quella di aggiungere informazioni su tutti i raccoglitori adiacenti a ciascun raccoglitore, in modo che quando viene spostata la vista del display posso semplicemente scansionare tutti i vicini per trovare quello successivo su cui il display è "centrato". Penso che questo sia simile a un grafico, ma decentralizzato.

    
posta Christoph 29.01.2014 - 00:02
fonte

1 risposta

2

Mappa le stelle su un Isocahedron ( link ) e se hai bisogno di un binning più fine, suddividi i triangoli.

    
risposta data 06.01.2015 - 18:07
fonte

Leggi altre domande sui tag