25

在 C/C++ 中有什么好的四元数计算库吗?

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

谢谢

4

8 回答 8

11

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

于 2009-02-03T21:29:27.637 回答
9

您可以尝试使用 Boost - 通常是开始的好地方。他们有一个专门的子库。

至于示例,请查看 Boost 随附的文档和单元测试。

于 2009-02-03T18:46:01.943 回答
9

有 Eigen,一个用于 Blender 和 KDE 程序的数学和几何模板库,它在单个 .h 文件中定义了一个漂亮的四元数类。

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

于 2009-11-14T02:45:09.247 回答
7

如果你决定自己动手,或者真的想了解代码背后的数学原理(对调试很有用),我强烈推荐Martin Baker 的网站。它看起来很原始,但解释很透彻,易于理解,而且他还提供了一些地方的代码。

于 2010-08-17T23:46:06.250 回答
4

DirectX 有自己的四元数函数,其他几个 3D 库也是如此。

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

于 2009-02-03T18:53:51.930 回答
3

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

于 2009-02-03T21:14:17.263 回答
2

如果您使用四元数,这个网络euclideanspace非常重要。它具有所有算术逐步,等价,简化,不同语言的代码示例。在此页面之后,我自己完成了大部分功能。我更喜欢下载图书馆。功能易于编程,您可以边学习边学习。

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

于 2012-05-28T08:06:25.273 回答
2

石墨烯是一个简单的 C/GObject 库,对 3D 图形中常见的各种矢量、矩阵、四元数等计算进行了 SIMD 优化。

于 2014-07-03T08:50:52.497 回答