Pregunta

Tengo una aplicación que necesito utilizar un marco para la visualización. Actualmente me estoy inclinando hacia Procesamiento para su uso en una aplicación de escritorio Java.

Problema: Tengo vectores ~ 500k + i estatales necesidad de visualizar. - 4D puntos XYZ y la hora (tipo GPS)

Tengo que ser capaz de seleccionar intervalos de tiempo de forma rápida y sencilla, que también tiene la capacidad de reproducir en el tiempo. Tengo la capacidad para cambiar la entrada, el uso de archivos planos o una base de datos.

Así que la pregunta es: ¿qué estructura de datos será mejor satisfacer mis necesidades? Cómo puedo leer los archivos en un ArrayLists? Hashmap? O un base de datos en memoria? O algo más?

El rendimiento es una necesidad para la visualización en 3D. El período de tiempo es de más de 8 horas. Así que no todos ellos se mostrará a la vez.

¿Alguien ha intentado utilizar un marco de codificación creativa para este tipo de uso? ¿Alguna sugerencia?

Gracias!

¿Fue útil?

Solución

Tratamiento con OpenGL es una opción, pero si llegas a tener problemas de rendimiento, lo recomiendo echar un vistazo a openframeworks o libcinder .

Son C ++, Java no, pero por ejemplo openframeworks tiene una sintaxis muy similar al tratamiento.

Comparación de Matt Swoboda recodificar entrada a las otras implementaciones de procesamiento.

La idea es, tratar de Procesamiento con OpenGL para ver si se obtiene la tasa de fotogramas que necesita, si no tratar openframewoks o libcinder.

HTH

Otros consejos

jMonkey proporciona un escenario gráfico que hace algo así como lo que describes.

Se mantiene una representación del espacio 3D que cambia con el tiempo. Creo normalmente que mide el tiempo con el reloj del sistema, lo que significa que no manipulen directamente, pero apuesto a que podría conectar un componente que le permitirá especificar el tiempo a ti mismo ... (es decir, cheque el estado de la gráfica a la vez que especifique).

los sonidos matriz 2D como una idea buena. Con un buen algoritmo de ordenación como quicksort o mergesort, podrás seleccionar intervalos de tiempo.

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

Sólo asegúrese de que tipo de ellos de principio a fin. Debe ser sencillo y probarlo?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top