2009-02-03 27 views
24

Cualquier buena biblioteca para quaternion cálculos en C/C++?bibliotecas quaternion en C/C++

Nota al margen: ¿algún buen tutorial/ejemplos? Lo he buscado en Google y he estado en las primeras páginas, pero tal vez tengas algunos demos/labs de compsci o cursos de matemática que podrías compartir/compartirías?

Gracias

+5

+1 para cuaterniones. Son increíbles. – jtbandes

+0

http://cqrlib.sourceforge.net/ – sastanin

Respuesta

8

usted podría intentar con Boost - por lo general buen lugar para empezar. Tienen un dedicated sublibrary para eso.

En cuanto a los ejemplos, consulte la documentación y las pruebas unitarias que vienen con Boost.

4

DirectX tiene su propia quaternion functions, al igual que muchas otras bibliotecas 3D.

En mi opinión, la mejor manera de aprender cómo funcionan los cuaterniones es resolver los cálculos usted mismo. La página de Wikipedia en quaternions y conversion contiene todas las fórmulas que necesita. Escribí mi propia biblioteca cuaternaria a partir de eso :) (Está en Haskell, así que no me molestaré en publicarlo.)

+0

Buena idea con DirectX y gráficos. El aprendizaje puede producir algunos efectos visuales atractivos. – Anonymous

+0

Realmente no es tan difícil hacerlo usted mismo, si no puede encontrar las bibliotecas. No tuve ningún problema con eso y mi capacitación en TI de matemáticas fue muy limitada (licenciatura en ciencias de la computación, no ciencia pura). –

3

Para documentación sobre cuaterniones, consulte libros de texto de gráficos en 3D. Son simplemente matrices que producen el efecto de la rotación 3D usando la multiplicación en lugar de la trigonometría computacionalmente costosa.

7

Si decide rodar su propia, o realmente quiere entender las matemáticas detrás del código (útil para la depuración), recomiendo altamente Martin Baker's website. Se ve primitivo, pero las explicaciones son exhaustivas y fáciles de seguir, y también proporciona código en algunos lugares.

2

Esta web, euclideanspace, es muy importante si está trabajando con cuaterniones. Tiene toda la aritmética paso a paso, equivalencias, simplificaciones, ejemplos de código en diferentes idiomas. Hice la mayoría de mis funciones por mi cuenta siguiendo esta página. Prefiero eso que derribar una biblioteca. Las funciones son fáciles de programar y aprendes en el camino.

Como ejemplo I sugieren que revise esta función de C++ sobre una multiplicación de cuaternión: Efficient C++ quaternion multiplication using cv::Mat

2

Hay graphene que es una biblioteca sencilla C/GObject con optimizaciones SIMD para vario vector, matriz, cuaternión, etc cálculos que son comunes en los gráficos 3D.

Cuestiones relacionadas