Pergunta

Eu tenho um aplicativo para o qual preciso usar uma estrutura de visualização. Atualmente, estou me inclinando para o processamento para uso em um aplicativo Java Desktop.

Problema: tenho ~ 500k+ vetores de estado que preciso visualizar. Pontos 4D - XYZ e Time (tipo GPS)

Preciso ser capaz de selecionar fatias de tempo rápido e facilmente, também tendo a capacidade de jogá -las a tempo. Eu tenho a capacidade de alterar a entrada, usando arquivos planos ou um db.

Portanto, a pergunta é: qual estrutura de dados acomodará melhor minhas necessidades? Eu leio os arquivos em um ArrayLists? Hashmap? Ou um banco de dados na memória? Ou alguma outra coisa?

O desempenho é obrigatório para visualizar em 3D. O período é superior a 8 horas. Portanto, nem todos eles serão exibidos de uma só vez.

Alguém tentou usar uma estrutura de codificação criativa para esse tipo de uso? Alguma sugestão?

Obrigado!

Foi útil?

Solução

Processar com o OpenGL é uma opção, mas se você tiver problemas de desempenho, eu recomendaria dar uma olhada OpenFrameworks ou libcinder.

Eles são C ++, não Java, mas o OpenFrameworks, por exemplo, tem uma sintaxe muito semelhante ao processamento.

Compare Matt Swoboda's Recode entrada para outras implementações de processamento.

A idéia é: tente processar com o OpenGL para ver se você obtém a taxa de quadros necessários; caso contrário, tente o OpenFramewoks ou Libcinder.

Hth

Outras dicas

JMONKEY Fornece um gráfico de cenas que faz algo como o que você descreve.

Ele mantém uma representação do espaço 3D que muda com o tempo. Eu penso normalmente Ele mede o tempo com o relógio do sistema, o que significa que você não o manipula diretamente, mas aposto que você pode conectar um componente que permitiria que você especifique o tempo ... (ou seja, verifique o estado do gráfico no momento em que você especificar ).

A matriz 2D parece uma boa ideia. Com um bom algoritmo de classificação, como o Quicksort ou Mergesort, você poderá selecionar fatias de tempo.

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

Apenas certifique -se de classificá -los do começo ao fim. Manter simples e testá -lo?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top