Pergunta

Quaisquer boas bibliotecas para quaternion cálculos em c/c ++?

Nota lateral: Algum bom tutorial/exemplos? Eu pesquisei no Google e estive nas primeiras páginas, mas talvez você tenha algumas demos/laboratórios de cursos CompSci ou matemática que você poderia/compartilhar?

Obrigado

Foi útil?

Solução

Sou fã da aula de quaternion de Irrlicht. É licenciado pelo Zlib e é bastante fácil de extrair de Irrlicht:

Outras dicas

Você pode tentar com o Boost - geralmente um bom lugar para começar. Eles TEM um sublibrary dedicada por isso.

Quanto aos exemplos, observe a documentação e os testes de unidade que acompanham o Boost.

Há Eigen, uma biblioteca modelada de coisas de matemática e geometria usada no Blender e por programas KDE, que possui uma classe de quaternion escorregadia definida em um único arquivo .h.

Informação em http://eigen.tuxfamily.org/index.php?title=main_page e http://www.ohloh.net/p/5393

Se você decidir rolar o seu próprio, ou realmente quiser entender a matemática por trás do código (útil para depuração), eu recomendo Site de Martin Baker. Parece primitivo, mas as explicações são completas e fáceis de seguir, e ele também fornece código em alguns lugares.

DirectX tem seu próprio funções de quaternion, assim como várias outras bibliotecas 3D.

Na minha opinião, a melhor maneira de aprender como os quaternions funcionam para atravessar a matemática você mesmo. A página da Wikipedia em quaternions e conversão contém todas as fórmulas que você precisa. Eu escrevi minha própria biblioteca de quaternion a partir disso :) (está em Haskell, então não vou me incomodar em postar.)

Para documentação sobre quaternions, consulte os livros de texto gráficos 3D. São simplesmente matrizes que produzem o efeito da rotação 3D usando multiplicação em vez de trigonometria computacionalmente cara.

Esta web, EuclideanSpace, é muito importante se você estiver trabalhando com quaternions. Possui todas as aritméticas passo a passo, equivalências, simplificações, amostras de código em diferentes idiomas. Fiz a maioria das minhas funções por conta própria após esta página. Eu prefiro isso do que do lado de baixo uma biblioteca. As funções são fáceis de programar e você aprende a caminho.

Como exemplo, sugiro que você verifique esta função C ++ sobre uma multiplicação de quaternion:Multiplicação de quaternion C ++ eficiente usando CV :: MAT

grafeno que é uma biblioteca c/gobject simples com otimizações SIMD para vários cálculos de vetor, matriz, quaternion, etc.

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