C / C ++中四元数计算的任何好库?
旁注:任何好的教程/示例?我已经谷歌了,并且去了前几页,但也许你有一些来自compsci或数学课程的演示/实验室你可以/将分享?
由于
答案 0 :(得分:9)
你可以试试Boost - 通常是开始的好地方。他们有一个dedicated sublibrary。
至于示例,请查看随Boost一起提供的文档和单元测试。
答案 1 :(得分:9)
有Eigen,一个在Blender和KDE程序中使用的模板化的数学和几何函数库,它在单个.h文件中定义了一个光滑的Quaternion类。
http://eigen.tuxfamily.org/index.php?title=Main_Page和http://www.ohloh.net/p/5393
的信息答案 2 :(得分:8)
我是Irrlicht四元数课的粉丝。它是zlib许可的,很容易从Irrlicht中提取:
答案 3 :(得分:7)
如果您决定自己动手,或者实际上想要理解代码背后的数学(对调试很有用),我强烈推荐Martin Baker's website。它看起来很原始,但解释是彻底的,易于理解,他还提供了地方代码。
答案 4 :(得分:4)
DirectX拥有自己的quaternion functions,其他几个3D库也是如此。
在我看来,了解四元数如何工作的最好方法是自己学习数学。 quaternions和conversion上的维基百科页面包含您需要的所有公式。我从那个:)写了我自己的四元数库(它在Haskell中,所以我不打算发布它。)
答案 5 :(得分:3)
有关四元数的文档,请查看3D图形教科书。它们只是使用乘法而不是计算上昂贵的三角函数产生3D旋转效果的矩阵。
答案 6 :(得分:2)
如果您使用四元数,此网络euclideanspace非常重要。它具有一步一步的算术,等价,简化,不同语言的代码样本。我在本页后面自己完成了大部分功能。我更喜欢这个而不是图书馆。功能很容易编程,你可以在途中学习。
作为一个例子,我建议你检查这个关于四元数乘法的c ++函数: Efficient C++ quaternion multiplication using cv::Mat
答案 7 :(得分:2)
有graphene这是一个简单的C / GObject库,具有SIMD优化功能,适用于3D图形中常见的各种矢量,矩阵,四元数等计算。