Domanda

Ho una domanda che ho bisogno di utilizzare un framework di visualizzazione per. Attualmente sto appoggiato verso elaborazione per l'uso in un'applicazione desktop Java.

Problema: Ho vettori ~ 500k + statali ho bisogno di visualizzare. punti 4D - XYZ e l'ora (GPS-like)

ho bisogno di essere in grado di selezionare intervalli di tempo velocemente e facilmente, avendo anche la capacità di riprodurre in tempo. Ho la possibilità di modificare l'ingresso, utilizzando file sia piatti o un db.

Quindi la domanda è: quale struttura dati sarà meglio soddisfare le mie esigenze? Faccio a leggere i file in un ArrayLists? HashMap? O un in-memory database? O qualcos'altro?

Performance è un must per la visualizzazione in 3D. Il periodo di tempo è più di 8 ore. Quindi non tutti saranno visualizzati in una sola volta.

Qualcuno ha tentato di utilizzare un quadro di codifica creativo per questo tipo di utilizzo? Qualche suggerimento?

Grazie!

È stato utile?

Soluzione

Lavorazione con OpenGL è un'opzione, ma se si esegue in problemi di prestazioni, mi sento di raccomandare avere uno sguardo a openFrameworks libcinder .

Sono C ++, non java, ma openFrameworks ad esempio ha una sintassi molto simile al trattamento.

Confronto di Matt Swoboda Recode ingresso alle altre implementazioni di elaborazione.

L'idea è, provare Elaborazione con OpenGL per vedere se si ottiene il framerate è necessario, altrimenti prova openframewoks o libcinder.

HTH

Altri suggerimenti

jMonkey fornisce un grafico scena che fa qualcosa di simile a ciò che si descrive.

Si mantiene una rappresentazione dello spazio 3D che cambia con il tempo. Credo che normalmente si misura il tempo con l'orologio di sistema, nel senso che non manipolare direttamente, ma scommetto che si potrebbe collegare un componente che permetterebbe di specificare il tempo da soli ... (cioè di controllo lo stato del grafico in un momento specificato).

i suoni matrice 2D come una buona idea. Con un bel algoritmo di ordinamento come quicksort o Mergesort, sarete in grado di selezionare intervalli di tempo.

float [][]vectors=new float[4][500000];

Basta assicurarsi che si ordina loro dall'inizio alla fine. Keep it semplice e testarlo?

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