quaternions相关内容

如何在不使用 transform.Rotate 的情况下在局部轴或世界轴上旋转带有第二四元数的四元数?

Transform.Rotate 有一个非常用于选择是否应相对于世界轴或局部轴进行旋转的有用界面. 在幕后,它正在对变换的rotation、一个Quaternion 和另一个Quaternion 进行一些数学运算.这个数学的确切性质取决于你选择当地国旗还是世界国旗. 如何在不将第一个 Quaternion 分配给 Transform 的 rotation(浪费内存和/或时间)的情况下进 ..
发布时间:2021-11-25 00:41:44 C#/.NET

使用四元数进行 OpenGL 旋转

所以我正在编写一个程序,其中对象以 spacesim 风格移动,以便学习如何在 3D 空间中平滑移动物体.在对 Euler 角进行了一些处理之后,它们似乎并不适合在任意方向上进行自由形式的 3D 运动,因此我决定继续研究似乎最适合这项工作的四元数.我打算让对象始终围绕其局部 X-Y-Z 轴旋转,而不是围绕全局 X-Y-Z 轴旋转. 我尝试使用四元数实现旋转系统,但有些东西不起作用.当沿单个轴 ..
发布时间:2021-11-25 00:37:04 C/C++开发

创建均匀随机四元数和两个四元数的乘法

我有一个 python (NumPy) 函数,它创建一个统一的随机四元数.我想从同一个或另一个函数中获得两个四元数乘法作为二维返回数组.在我最近的案例中,四元数乘法的公式是 Q1*Q2 和 Q2*Q1.这里,Q1=(w0, x0, y0, z0) 和 Q2=(w1, x1, y1, z1) 是两个四元数.预期的两个四元数乘法输出(作为二维返回数组)应该是 return([-x1*x0 - y1* ..
发布时间:2021-11-24 21:40:30 Python

是否有将四元数旋转转换为欧拉角旋转的算法?

是否有将旋转的四元数表示转换为欧拉角表示的现有算法?欧拉表示的旋转顺序是已知的,可以是六种排列中的任何一种(即 xyz、xzy、yxz、yzx、zxy、zyx).我见过固定旋转顺序的算法(通常是 NASA 航向、倾斜、滚动约定),但没有看到用于任意旋转顺序的算法. 此外,由于单个方向有多个欧拉角表示,因此这个结果将是模棱两可的.这是可以接受的(因为方向仍然有效,它可能不是用户期望看到的方向) ..

如何计算方位角&使用凸轮四元数相对于相机的物体高程......?

我有一个相机四元数 (a,b,c,d) 和一个凸轮位置 (camX, camY, camZ)我有一个具有 3d 坐标 (x,y,z) 的对象 我需要计算物体相对于凸轮视图方向的方位角、仰角和飞机. 第一个问题如果我把物体放在我的视野中心,如果我旋转凸轮,平移它,我应该有相同的方位角值,对吧??我没有那个. 第二个问题,计算.我正在做对象坐标 - 凸轮位置,以便将对象转换为凸轮.我 ..
发布时间:2021-10-26 16:13:22 其他开发

将轴角转换为四元数的问题

我有一个向量,它从我的相机指向我想要指向的对象,所以我想制作一个四元数来旋转相机,使其指向该向量.所以我这样做(使用 glm) glm::quat rotation=glm::angleAxis(0.0f,vector); 如果我在向量的情况下正确理解该函数,例如 (0.0f,0.0f,-1.0f),相机应该在深度轴上指向前方,并且没有滚动.但我不知道为什么,在这种情况下它会创建这个四元数:x ..
发布时间:2021-06-30 19:17:46 其他开发

使用四元数旋转 3D 欧拉点以避免万向节锁定

首先,我已经做了很多谷歌搜索并检查了其他关于此的 stackoverflow 帖子,但无法获得有效回复或工作代码片段.数学不是我的强项. 我需要一个例程来获取相机点(CX、CY、CZ)并将其围绕观察点(LX、LY、LZ)旋转三个旋转角度(RX、RY、RZ).在某些我需要避免的情况下,使用欧拉旋转会导致万向节锁定.所以我听说了使用四元数. 我发现这可以将旋转转换为四元数http://ww ..
发布时间:2021-06-30 19:17:43 其他开发

使用 System.Numerics.Quaternion 的 3D 旋转

这里有人知道如何使用 .net(4.6 及更高版本)System.Numerics.Quaternion 旋转 vector3? 虽然我的数学很差,但我的理解只是:四元数是 4d 的“结构",可以在 3d 中产生平移、缩放和旋转. 所以我玩了一场,不能轮换.做看起来很明显的事情:改变四元数的 W 分量.(角度)然后读取向量产生缩放?!?任何人都可以帮助或指出正确的方向寻求帮助? ..
发布时间:2021-06-30 19:17:40 C#/.NET

如何同步四元数中具有相同方向的两点的位置?

我在 3D 空间中有两个具有固定距离(例如 30 厘米)且方向完全相同的点.点 1 (x1,y1,z1) 的位置和点 1 的方向(用四元数 q0、q1、q2、q3 表示)是已知的.如何计算点 2 的位置?(无论我如何移动它们,它们之间的距离都不会改变,方向始终相同) 我在网上搜索,这是我能找到的最接近的问题 https://www.opengl.org/discussion_boards/s ..
发布时间:2021-06-30 19:17:37 其他开发

用四元数绕轴旋转矢量

我正在尝试学习 3d 编程,现在我正在尝试了解如何使用四元数围绕轴旋转向量. 据我所知,要绕轴 a 旋转向量 v,将两个向量都转换为四元数后,我们将 v 乘以 a,然后乘以 a 的共轭乘积. 我想将 v(0,1,0) 围绕 a(1,0,0) 旋转 90 度,我应该得到一个结果向量 v(0,0,1)(或 0,0,-1,取决于旋转的方向). 我没有得到我期望的输出.代码如下: i ..
发布时间:2021-06-30 19:17:34 C/C++开发

iDevice 态度:稳定四元数

我正在尝试使用 iDevice 的态度 self.motionManager.deviceMotion.attitude.quaternion设备放在桌子上,但数值不一样.如何稳定这些值而不会导致不良旋转?我正在使用设备姿态来旋转相机节点. (x = -0.0055437298906573507, y = -0.0078092851375721247, z = -0.0411804051218 ..
发布时间:2021-06-30 19:17:27 移动开发

来自两个向量对的四元数

我有两个向量对(旋转前后). 旋转前:[x1,y1,z1][x2,y2,z2] 旋转后:[x1',y1',z1'][x2',y2',z2'] 如何创建表示此旋转的四元数? 解决方案 在大多数情况下,没有将 2 个向量转换为 2 个其他向量的旋转.这是一个简单的方法来形象化原因:旋转不会改变向量之间的角度.如果旋转前 2 个向量之间的角度与旋转后 2 个向量之间的角度不同, ..
发布时间:2021-06-30 19:17:25 其他开发

求解校准四元数

我正在编写一个需要旋转向量的 Android 应用.我想使用 TYPE_ROTATION_VECTOR 但在我的一些测试设备中,磁力计至少可以说表现不佳.相反,TYPE_GAME_ROTATION_VECTOR 提供了更平滑的数据(但我无法获得相对于地球的方向).我最终做的是在加载数据时运行两个虚拟传感器.我现在对两者都有一个平均四元数,称它们为 R (TYPE_ROTATION_VECTOR) ..
发布时间:2021-06-30 19:17:22 移动开发

旋转方向向量(three.js)

我正在尝试旋转行星表面上的箭头以面向其行进方向.我可以从表面法线获得方向向量和向上向量.我将如何将其转换为箭头旋转的四元数.我正在使用three.js,所以他们提供的任何我可以使用的建议方法都会很有用.干杯. 我目前掌握的信息. var upVector = new THREE.Vector3();upVector.subVectors(new THREE.Vector3(0,0,0) ..
发布时间:2021-06-30 19:17:18 前端开发

根据其四元数在 3D 中移动 cannonJS 对象

我想实现一艘太空船,就像在 cannonJS 身体上移动一样.(我真的是初学者)我找到了一些例子,但没有一个是我正在寻找的. 据我所知,移动物体的正确方法是改变它的速度. 这是我在这里所做的:http://codepen.io/Tomo0613/pen/xVjqqK 在此输入代码但我在理解四元数方面肯定有问题. 有没有办法在我旋转时根据其四元数更新身体的向量,或者总是与世界相关?结果 ..
发布时间:2021-06-30 19:17:12 其他开发

正确归一化对偶四元数

我在处理双四元数时遇到了问题,我相信这是因为它们没有正确归一化.A、B 和 A' 是对偶四元数,其中后者是共轭的.这样做时:Q = A * B * A'如果 A 和 B 正确归一化,我理论上应该总是以 Q = B 结束.但在某些情况下,我不这样做,这完全弄乱了我的整个骨架层次结构. 许多页面表明对偶四元数的范数是 ||Q||= sqrt(QQ'),但这意味着取对偶数的平方根,我不知道该怎么做 ..
发布时间:2021-06-30 19:17:09 其他开发

如何使用平移手势在 SceneKit 中使用四元数旋转相机

我正在使用 iOS SceneKit 框架. 我想使用 UIPanGestureRecognizer 来控制相机的方向. SCNNodes 有几个我们可以使用的属性指定它们的旋转:rotation(旋转矩阵)、orientation(四元数)、eulerAngles(每个轴的角度). 我读过的所有内容都说要避免使用欧拉角以避免万向节锁定. 我想使用四元数有几个原因,我不会在 ..
发布时间:2021-06-30 19:17:06 移动开发

如何将连接关节的位置转换为相对增量旋转

我目前正在实施一个 C++ 解决方案来跟踪多个对象的运动.因为我在一个帧序列中跟踪了这些对象的点,这样每个帧中有多个点.因此,我有整个帧序列的那些点的 x、y、z 坐标.通过研究一个已经生成的模型,我了解到它由一个相互移动的关节系统组成.每个关节都有一个父关节,它们的运动以四元数格式相对于其父关节写入.因此,我想将 3D 空间中相对于同一原点的 x、y、z 坐标转换为相对于其父级写入的四元数格式. ..
发布时间:2021-06-30 19:17:00 C/C++开发