Pergunta

Eu estou escrevendo uma ferramenta que vai ser usado para processar um monte de dados 3D, fazendo coisas como girar objetos, tradução, escala e todas essas coisas boas. Alguém sabe de uma biblioteca de bom que já faz algum deste material comum 3D?

Eu não estou interessado em visualizar os dados no momento, e estou interessado principalmente no desempenho das operações.

coisas que eu sei que vou precisar neste momento:

    vetores 2D / 3D / 4D
    • (adição, subtração, dot produto, produto cruzado, etc ...)
  • Rotação / Tradução / Escala usando matrizes
  • Quaternions

Eu era capaz de localizar a biblioteca Sharp3D , mas parece que ele pode fazer o que eu quiser, mas hasn 't foi atualizado em muito tempo. Alguém usou isso antes? Quaisquer outros (melhor) sugestões?

Foi útil?

Solução

Microsoft.Xna.Framework (navio este XNA) poderia fazer o trabalho.

A biblioteca XNA Framework Math tem vários tipos geométricas básicas que podem ser usados ??para manipular objetos no espaço 2D ou 3D. Os objectos primitivas nesta biblioteca representam os dados necessários para representar um objecto geométrico ou uma operação em que o objeto. Cada tipo geométrica tem uma série de operações matemáticas que são suportados para o tipo.

Vector

O XNA Framework fornece as classes Vector2, Vector3 e Vector4 para representar e manipular vectores. Um vector normalmente é usado para representar uma direcção e magnitude. No entanto, no âmbito XNA ele também pode ser usado para armazenar uma coordenada ou algum outro tipo de dados com os requisitos mesmo armazenamento.

Cada classe vector tem métodos para a realização de operações de vector convencionais, tais como:

  • produto Dot
  • produto Cruz
  • Normalização
  • Transformação
  • Linear, Cubic, Catmull-Rom, ou Hermite interpolação spline.

Matrizes

O XNA Framework fornece a classe Matrix para a transformação da geometria. A classe Matrix utiliza um grande ordem de linha para matrizes de endereço, o que significa que a linha é especificados antes da coluna quando se descreve um elemento de um matriz bi-dimensional. A classe Matrix fornece métodos para a realização de operações de matriz convencionais, tais como o cálculo do determinado ou inversa de uma matriz, em adição a métodos auxiliares para a criação de escala, a tradução, e matrizes de rotação.

Quaternions

O Quadro XNA fornece a estrutura quatérnion para representar e calcular a rotação eficiente sobre um vector em torno de um ângulo especificado.

Outras dicas

Eu nunca usei isso antes, mas eu só peguei Sharp3D e parece funcionar bem (além de alguma questão sobre nomes fortes que levaram alguns minutos para trabalho ao redor). Minha impressão é que não é exatamente leve, mas longe de ser sobre o lado pesado.

Como a sem atualizações recentes, não é como a matemática está mudando ou qualquer coisa ...

Tente SCINET Linea em www.obacs.com . Não é uma biblioteca livre, mas em comparação com alternativas que não é muito caro ww

SCINET Linea não está disponível a partir www.obacs.com mais. Ele agora vem dentro SCINET matemática que tem muito mais recursos. Eu comprei uma cópia para a minha pesquisa há um mês. Eu como até agora.

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