Question

J'ai une application que je dois utiliser un cadre de visualisation pour. Je penche actuellement vers le traitement pour être utilisé dans une application de bureau Java.

Problème: J'ai ~ 500k + vecteurs d'état i besoin de visualiser. les points 4D - XYZ et l'heure (GPS-like)

Je dois être en mesure de sélectionner des tranches de temps rapide et facilement, ayant également la possibilité de les jouer dans le temps. J'ai la possibilité de changer l'entrée, en utilisant des fichiers plats ou un db.

La question est: quelle est la structure des données se prêtera le mieux à mes besoins? Est-ce que je lis les fichiers dans un ArrayLists? Hashmap? Ou une base de données dans la mémoire? Ou autre chose?

La performance est un must pour la visualisation en 3D. La période est plus de 8 heures. Donc, tous ne seront affichés à la fois.

Quelqu'un at-il tenté d'utiliser un cadre de codage créatif pour ce type d'utilisation? Toutes les suggestions?

Merci!

Était-ce utile?

La solution

Traitement avec OpenGL est une option, mais si vous rencontrez des problèmes de performance, je recommande d'avoir un regard sur openFrameworks ou libcinder .

Ils sont c ++, pas java, mais openFrameworks par exemple a une syntaxe très similaire à traitement.

Comparer de Matt Swoboda recodage entrée aux autres implémentations de traitement.

L'idée est, essayez de traitement avec OpenGL pour voir si vous obtenez le framerate dont vous avez besoin, sinon essayez openframewoks ou libcinder.

HTH

Autres conseils

jMonkey fournit un graphique de scène qui fait quelque chose comme ce que vous décrivez.

Il maintient une représentation de l'espace 3D qui change avec le temps. Je pense que normalement il mesure le temps avec l'horloge du système, ce qui signifie que vous ne manipule pas directement, mais je parie que vous pouvez brancher un composant qui vous permet de spécifier le temps vous ... (ex.chèque l'état du graphique à un moment que vous spécifiez).

les sons du tableau 2d comme une bonne idée. Avec un bon algorithme de tri comme quicksort ou mergesort, vous serez en mesure de sélectionner des tranches de temps.

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

Assurez-vous de les trier du début à la fin. Keep it simple et tester?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top