Frage

Ich habe eine Anwendung, die ich brauche, um eine Visualisierungs-Framework zu verwenden. Ich bin zur Zeit auf der Verarbeitung in einem Java-Desktop-App Verwendung gelehnt.

Problem: Ich habe ~ 500k + Zustandsvektoren ich brauche zu visualisieren. 4D Punkte - XYZ und Zeit (GPS-like)

Ich muss in der Lage, Zeitscheiben schnell und einfach zu wählen, auch die Fähigkeit, die sie in der Zeit zu spielen. Ich habe die Möglichkeit, die Eingabe zu ändern, entweder flache Dateien oder db.

Die Frage ist also: Welche Datenstruktur wird am besten unterbringen meine Bedürfnisse? Habe ich die Dateien in ein Arraylisten lesen? HashMap? Oder ein In-Memory-Datenbank? Oder etwas anderes?

Performance ist ein Muss für 3D-Visualisierung. Die Zeitdauer ist über 8 Stunden. Also nicht alle von ihnen auf einmal angezeigt werden.

Hat jemand einen kreativen Codierung Rahmen für diese Art der Nutzung zu verwenden versucht? Irgendwelche Vorschläge?

Danke!

War es hilfreich?

Lösung

Verarbeitung mit OpenGL ist eine Option, aber wenn Sie in Performance-Probleme laufen, würde ich empfehlen, einen Blick auf openframeworks oder libcinder .

Sie sind C ++, Java nicht, aber zum Beispiel openframeworks hat eine sehr ähnliche Syntax Verarbeitung.

Vergleichen Matt Swoboda Recode Zugang zu den anderen Verarbeitungs-Implementierungen.

Die Idee ist, versuchen Verarbeitung mit OpenGL, um zu sehen, ob Sie die Framerate erhalten Sie benötigen, andernfalls versuchen openframewoks oder libcinder.

HTH

Andere Tipps

jMonkey stellt eine Szene Graph, der etwas tut, wie das, was Sie beschreiben.

Es unterhält eine Darstellung von 3D-Raum, der mit der Zeit ändert. Ich denke, normal es Zeit, mit dem Systemtakt misst, was bedeutet, Sie manipulieren nicht direkt, aber ich wette, dass Sie in einem Bauteil stecken könnte, dass Sie Zeit, sich zu spezifizieren erlauben würde ... (dh Scheck der Zustand des Graphen in einer Zeit, die Sie angeben).

die 2D-Array klingt wie eine gute Idee. Mit einem schönen Sortieralgorithmus wie quicksort oder mergesort, können Sie Zeitscheiben wählen.

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

So stellen Sie sicher, dass Sie sortieren sie von Anfang bis Ende. Halten Sie es einfach und testen Sie es?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top