11得票1回答
态度变化 - 角度和轴问题 - 四元数数学

我有一个应用程序,可以在用户围绕物体行走时记录角度,同时将设备(最好是)指向物体的中心。 在用户命令下,角度会被重置-因此参考姿态会被重置。使用欧拉角会产生万向锁,所以我目前正在使用四元数,并通过以下方式计算角度:double angleFromLastPosition = acos(from...

12得票5回答
四元数与数值稳定性

我正在学习单位四元数以及如何使用它们表示和组合旋转。维基百科称它们比矩阵表示更具数值稳定性,但没有给出参考。有人可以向我解释一下(最好附上一些数学推理),为什么在处理旋转时(例如OpenGL应用程序),使用单位四元数比旋转矩阵更具数值稳定性?这只是因为避免万向节锁吗?

12得票7回答
欧拉角与四元数 - 存储内部与向用户展示之间的紧张关系引起的问题?

四元数可以说是内部表示物体旋转的适当选择。它们插值简单高效,并且能够明确地表示单个方向。 然而,在用户界面中展示四元数通常不合适 - 欧拉角通常更为熟悉,其值更加直观和可预测。 欧拉角在代码层面上很复杂 - 它们需要存储旋转顺序,并使用此顺序和相关角度组成实用方向(无论是矩阵还是四元数),...

13得票4回答
朝向四元数使用上向量

我有一个相机(在自定义3D引擎中),它接受四元数作为旋转变换。我有两个表示相机和要观察的对象的3D点。我想计算从相机到对象的四元数,同时尊重世界上方轴。 这个问题没有"up"向量,但是询问同样的事情。所有三个答案都使相机指向正确的方向,但是会滚动(就像偏航/俯仰/翻滚;想象一下当您看着某物时...

19得票2回答
使用四元数实现OpenGL旋转

所以我正在编写一个程序,让对象以spacesim风格在空间中移动,以学习如何在三维空间中平稳地移动物体。在尝试了一些欧拉角之后,它们似乎并不适用于任意方向的自由形式三维运动,因此我决定转向似乎最适合这项工作的东西-四元数。我打算让对象始终围绕其本地X-Y-Z轴旋转,而不是围绕全局X-Y-Z轴旋...

7得票3回答
如何从一个向量找到正确的旋转角度以使其与另一个向量相等?

我有两个对象,每个对象都有两个向量: 法线向量 上向量 就像这张图片一样: 上向量垂直于法线向量。现在我想找到从一个对象到另一个对象的唯一旋转,该怎么做呢? 我有一种方法可以找到一个向量到另一个向量之间的旋转,并且它有效。问题是我需要考虑两个向量:法线向量和上向量。如果我使用此...

13得票3回答
四元数的“lookAt”函数

我正在解决以下问题。我正在处理骨骼动画,想让玩家的头部跟随空间中的另一个对象。我的上轴是+Z,前轴是+Y,四元数的大小在W中。我尝试使用gluLookAt的mesa代码并使用3x3矩阵转换为四元数,但结果不如预期,所以我走了另一条路线... 到目前为止,我得到了以下代码,至少玩家的头部正在旋...

9得票4回答
如何快速生成随机四元数?

我搜索了很多,结果发现这个问题的答案真的很难找到。虽然有一些算法可以生成四元数形式的随机方向,但它们涉及到平方根和三角函数。我不需要一个均匀分布的方向。我只需要生成(许多)四元数,使它们的方向的随机性“足够好”。除了我需要快速生成之外,我无法指定“足够好”的具体含义。

8得票4回答
最近邻算法使用四元数

给定一个四元数值,我想在一组四元数中找到它的最近邻。为此,我需要一种比较两个四元数之间“距离”的方法。这样的比较需要哪种距离表示法以及如何计算? 谢谢, 乔什

132得票11回答
寻找表示从一个向量旋转到另一个向量的四元数

我有两个向量u和v。是否有一种方法可以找到表示从u旋转到v的四元数?