quaternions相关内容

Unity - 任意角度之间的夹具旋转

我有一项任务,我必须在其他两个角度之间夹一个角度. 问题在于限制可以是 >360 或 (例如 [-45,45] 或 [275,45]). 考虑到所有特殊情况,是否有一种干净的方法可以做到这一点案例? (例如范围 [-45,45] 和 225 的输入角度应为 -45). 提前致谢!附言我使用的是 unity,所以我手头有所有默认的 Quaternion 方法. 当前代 ..
发布时间:2021-11-27 23:55:47 C#/.NET

LSM9DS0 上的 Madgwick 传感器融合

我正在尝试实施 Madgwick 传感器融合算法 从这里 STM Cortex M3 微控制器上的 LSM9DS0 传感器(加速度计、陀螺仪和磁力计). 来自所有传感器的原始数据似乎都很好. 我的问题是:当我拿着传感器的 z 轴水平或向下(即滚动或俯仰角超过 90 度)时 - 来自滤波器的四元数变得非常不稳定并随机翻转 180 度.更准确地说,q0 和 q3 不断变化符号,导致旋转 1 ..
发布时间:2021-11-26 18:24:06 其他开发

加速度计数据中的重力补偿

给定一个具有 9 DOF(加速度计、陀螺仪和磁力计)的加速度计,我想消除/补偿加速度计读数中的重力影响(加速度计可以自由旋转).传感器以四元数表示相对于(磁)北、西和上参考系的方向. 我发现了这个 http://www.varesano.net/blog/fabio/simple-gravity-compensation-9-dom-imus但无法理解给定方程的基础. 根据上述信息,我 ..
发布时间:2021-11-26 18:17:07 其他开发

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

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

Threejs - 如何将对象相对于鼠标旋转到从其当前中心点设置的度数

我在一个场景中有一个 Threejs 模型,它的 0,0,0 点在它的末尾.我必须旋转它,使其静止位置处于我想要的角度,并将其动画化到场景中,因此位置和旋转都不是 0,0,0.此外,相机已被定位并设置为查看对象,因此它的位置和旋转已更改. 我想获取用户的鼠标坐标,然后让模型围绕其在世界 Y 轴上的中心点旋转一定数量的最大和最小度数.我知道如何将鼠标坐标映射到我想要的度数/弧度角,但如何告诉模 ..
发布时间:2021-11-25 04:35:08 C#

旋转相机以查看three.js中的选定对象

我正在尝试设计地图.因此,当我选择任何几何体时,我希望对象位于视口的中心并且相机正在注视它.我花了很多时间在网上到处找,但没有找到答案.请注意,我不想旋转对象.我只想更新相机.我试图在这个例子中得到类似的东西,当我们点击数字时,它会来到中心: ..
发布时间:2021-11-25 04:34:08 C#

iPhone旋转四元数绝对坐标?

我有一部带陀螺仪的 iPhone. 假设我有一个手机旋转 Q 的四元数. 我想在屏幕上显示相对于世界绝对坐标的点.因此,随着我手机的每次旋转,这些点将在真实的 3d 空间(某种增强现实)中“静止".假设它是形成一个矩形的 4 个点. 因此,我在相对于手机屏幕的 3d 空间中创建了 4 个点,并将 Q 的变换应用于每个点. 我认为它应该很简单,但我的点不是相对于世界坐标而是相 ..
发布时间:2021-11-25 04:26:34 C#

四元数和球面旋转坐标之间的正确转换?

我正在了解更多四元数转换,但我对本网站以下部分的四元数到球面旋转转换代码有疑问: http:///web.archive.org/web/20041029003853/http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q59 这段代码中的angle和sin_angle应该是什么?从未使用过角度,所以我猜是旋转角度.sin_angle 应 ..
发布时间:2021-11-25 04:21:31 C#

点看点

所以我在 3D 空间中有一个点,并且在 3D 空间中有相机的位置和旋转. 所以基本上对象上有Vector3.相机 Vector3 和 Quaternion. 我需要知道如何看待这一点. 我想告诉用户如何移动到那个点.用户应该向左、向右还是向后直接拍摄相机? 解决方案 一种方法是将相机当前面向的方向计算为偏航角(如罗盘航向),并计算它需要的方向脸才能看重点. 从另一个 ..
发布时间:2021-11-25 04:19:25 C#

通过坐标2个物体在两个位置的点来计算四元数

对象在 3D 中旋转.我有旋转中心和 2 点坐标在旋转而不是旋转位置.计算将对象从第一个位置旋转到两个位置的四元数. 解决方案 我们必须在对象的第一个位置矢量化 OA' 和 OB' OA 和 OB 位居第二 Q 向量部分四元数 Q0 标量部分 图 1 评论 OAOB - 点向量积 OAxOB - 交叉向量积 从第一个位置到第二个位置的旋转对象的四元数是: 1 个案例 ..
发布时间:2021-11-25 04:11:22 C#

java 3D旋转四元数

我有这种使用四元数在 3D 中旋转点的方法,但它似乎无法正常工作: public static ArrayList旋转3D(ArrayList点,双角,int xi,int yi,int zi){ArrayListnewPoints = new ArrayList();for (int i=0;i 如果我打这个电话 rotation3D(list, Math.toRadians(90), 0 ..
发布时间:2021-11-25 04:01:06 C#

通过坐标2个物体在两个位置的点来计算四元数

对象在 3D 中旋转.我有旋转中心和 2 点坐标在旋转而不是旋转位置.计算将对象从第一个位置旋转到两个位置的四元数. 解决方案 我们必须在对象的第一个位置矢量化 OA' 和 OB' OA 和 OB 位居第二 Q 向量部分四元数 Q0 标量部分 图 1 评论 OAOB - 点向量积 OAxOB - 交叉向量积 从第一个位置到第二个位置的旋转对象的四元数是: 1 个案例 ..
发布时间:2021-11-25 03:58:22 C#

约束俯仰、偏航和卷

我有一个表示为四元数的旋转,并试图限制俯仰、偏航和滚动轴.我试着这样做: 公共结构方向{公共 Vector3 向上,向前;公共方向(Vector3 向上,Vector3 向前){this.up = 向上;this.forward = 转发;}}公共静态方向 [] 方向 = 新方向 [3]{新方向(Vector3.right,Vector3.up),新方向(Vector3.up,Vector3.f ..
发布时间:2021-11-25 03:54:34 C#

我可以从偏航/俯仰/滚动创建的两个四元数中插入旋转吗?

四元数适用于在它们之间插入旋转.到目前为止一切顺利. 如果我有一个网络游戏,将旋转转换为 vector3f 就足够了,还是应该使用四元数?为了让游戏更流畅,我可能需要在上次发送的轮播和当前轮播之间进行插值. 但是我可以在从偏航/俯仰/滚动创建的两个四元数之间插入旋转吗? 四元数 a = Quaternion.FromYawPitchRoll(x1,y1,z1);四元数 b = Qua ..
发布时间:2021-11-25 03:27:56 C#

四元数平滑旋转

四元数不仅可以描述旋转,还可以描述方向,即从初始(零)位置旋转. 我希望模拟从一个方向到另一个方向的平滑旋转.我计算了开始方向 startOrientation 和结束方向 endOrientation 并希望将中间方向描述为 startOrientation*(1-argument) + endOrientation*argument 而argument 从 0 变为 1. monk ..
发布时间:2021-11-25 02:54:13 C#

使用四元数插入旋转时的翻转问题

我使用 slerp 在表示旋转的两个四元数之间进行插值.然后将产生的旋转提取为欧拉角以输入图形库.这种工作,但我有以下问题;当沿绿色箭头方向围绕两个(一个工作正常)轴旋转时,如左图所示 这里 旋转很快就会跳来跳去,从相反的位置向相反的视觉方向旋转,如右框中的红色箭头所示. 从数学的角度来看这可能是合乎逻辑的(虽然对我来说不是),但这是不受欢迎的.围绕多个轴旋转时,如何在没有视觉翻 ..
发布时间:2021-11-25 02:53:07 C#

旋转的四元数数学?

我正在我的场景中使用 gluDisk() 绘制一个平面磁盘.gluDisk() 绘制面向正 Z 轴的磁盘,但我希望它面向我拥有的任意法线. 显然我需要使用 glRotate() 来使磁盘正确面对,但旋转应该是什么?我记得这可以使用四元数计算,但我似乎不记得数学了. 解决方案 解决方案应该非常简单,并且不应该需要四分之一. 从 Normal1 到 Normal2 的旋转轴必须与两者正 ..
发布时间:2021-11-25 02:30:00 C#

如何插入旋转?

我有两个描述旋转的向量;开始旋转 A 和目标旋转 B.我如何最好地通过因子 F 插入 A 以接近 B? 当需要对多个维度进行插值(即产生不需要的旋转)时,在向量上使用简单的 lerp 不起作用.也许从旋转向量构建四元数并使用 slerp 是可行的方法.但是,那么,我怎样才能从结果四元数中提取一个描述新旋转的向量呢? 提前致谢. 解决方案 由于我似乎不明白你的问题,这里有一点 S ..
发布时间:2021-11-25 02:20:11 C#

将 Unity 变换转换为 THREE.js 旋转

如何将 THREE.js 相机或对象的旋转与 Unity 游戏对象的变换相匹配? Unity 使用具有 ZXY 欧拉阶数的左手系统.THREE.js 使用具有 XYZ euler 阶数的右手系统. 将GameObject.transform.rotation(四元数)转换为Object3D.rotation(THREE.Vector3)需要进行哪些转换? 解决方案 我们最终解决 ..
发布时间:2021-11-25 02:14:59 C#

我可以在四元数中切换 X Y Z 吗?

我有一个 Y 轴向上的坐标系.我需要将其转换为 Z 为 UP 的坐标系.我将旋转存储在四元数中,所以我的问题是:如果我有一个四元数 X、Y、Z,我可以将 Y 与 Z 切换并得到 Z 实际上向上的结果吗? 解决方案 只是在四元数中交换两个轴?不,这不起作用,因为这会翻转手性.然而,如果你翻转手性并否定四元数的实部,那么你又回到了原来的手性.在一般形式中,您可以将其写为 Q'(Q, i' ..
发布时间:2021-11-25 02:11:15 C#