C / C ++中的四元数库

时间:2009-02-03 18:42:01

标签: c++ math quaternions

C / C ++中四元数计算的任何好库?

旁注:任何好的教程/示例?我已经谷歌了,并且去了前几页,但也许你有一些来自compsci或数学课程的演示/实验室你可以/将分享?

由于

8 个答案:

答案 0 :(得分:9)

你可以试试Boost - 通常是开始的好地方。他们有一个dedicated sublibrary

至于示例,请查看随Boost一起提供的文档和单元测试。

答案 1 :(得分:9)

有Eigen,一个在Blender和KDE程序中使用的模板化的数学和几何函数库,它在单个.h文件中定义了一个光滑的Quaternion类。

http://eigen.tuxfamily.org/index.php?title=Main_Pagehttp://www.ohloh.net/p/5393

的信息

答案 2 :(得分:8)

我是Irrlicht四元数课的粉丝。它是zlib许可的,很容易从Irrlicht中提取:

答案 3 :(得分:7)

如果您决定自己动手,或者实际上想要理解代码背后的数学(对调试很有用),我强烈推荐Martin Baker's website。它看起来很原始,但解释是彻底的,易于理解,他还提供了地方代码。

答案 4 :(得分:4)

DirectX拥有自己的quaternion functions,其他几个3D库也是如此。

在我看来,了解四元数如何工作的最好方法是自己学习数学。 quaternionsconversion上的维基百科页面包含您需要的所有公式。我从那个:)写了我自己的四元数库(它在Haskell中,所以我不打算发布它。)

答案 5 :(得分:3)

有关四元数的文档,请查看3D图形教科书。它们只是使用乘法而不是计算上昂贵的三角函数产生3D旋转效果的矩阵。

答案 6 :(得分:2)

如果您使用四元数,此网络euclideanspace非常重要。它具有一步一步的算术,等价,简化,不同语言的代码样本。我在本页后面自己完成了大部分功能。我更喜欢这个而不是图书馆。功能很容易编程,你可以在途中学习。

作为一个例子,我建议你检查这个关于四元数乘法的c ++函数: Efficient C++ quaternion multiplication using cv::Mat

答案 7 :(得分:2)

graphene这是一个简单的C / GObject库,具有SIMD优化功能,适用于3D图形中常见的各种矢量,矩阵,四元数等计算。