问题标签 [quaternions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3685 浏览

3d - 在 OGRE 中获取对象方向

我有一个有身体和头部的角色。头部作为骨头与身体相连,我已经知道骨头的名字。现在我想得到头部的方向?那可能吗?我试过这个,但它似乎不起作用:

我认为我应该乘以除单位 x 向量之外的其他值,所以我尝试了所有组合。在这种情况下(即史密斯实体),我使用 得到了正确答案-Vector3::UNIT_X,所以我认为这是正确的解决方案。我尝试了其他实体,但未能得到正确答案。

任何的想法?

0 投票
4 回答
3033 浏览

distance - 使用四元数的最近邻

给定一个四元数,我想在一组四元数中找到它最近的邻居。为此,我显然需要一种方法来比较两个四元数之间的“距离”。这种比较需要什么距离表示,它是如何计算的?

谢谢,

乔什

0 投票
2 回答
4084 浏览

math - 四元数仍然有万向节锁

我没有使用欧拉角,而是使用四元数来表示和处理 3D 中立方体的旋转。虽然它可以解决云台锁定问题,但我仍然遇到这个问题。

我的代码是:

这些rotate函数来自http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation#Pseudo-code_for_rotating_using_a_quaternion_in_3D_space(翻译成 JavaScript)。

我想问题是由于我仍然使用轴的顺序(x y z),这是云台锁定的主要问题。

如何以解决万向节锁定的方式实现四元数旋转?

提前致谢。

0 投票
1 回答
223 浏览

rotation - 如何修改四元数以使一个轴上的欧拉旋转为零?

我有两个节点,我只知道其中一个的旋转。

我想将节点 1 的旋转应用到节点 2,但将一个轴归零(用欧拉术语)。

如何?

0 投票
3 回答
5743 浏览

latitude-longitude - 经度/纬度到四元数

我有一个经度和纬度,想把它转换成四元数,想知道我该怎么做?我想使用它,因为我有一个将地球投影到球体上的应用程序,我想从一个位置旋转到另一个位置。

最好的!

0 投票
1 回答
6640 浏览

iphone - 使用滚动、俯仰和偏航或四元数或旋转矩阵从 CMAttitude 计算高度和方位角

我遇到了一个问题。我想将 iPhone 的 CMAttitude 信息转换为高度(0 到 90 度)和方位角(0 到 360 度)。我在谷歌上搜索并点击了一些讨论它的线程,但没有一个线程得到肯定的答案,而且大多数讨论四元数和欧拉角的文章都是太多的数学知识,无法塞进我的大脑!

是否有一些开源材料可以轻松完成这项任务?或者有人编写了代码来执行这种转换?

编辑:首先,抱歉这么抽象!

方位角是设备指向的地球表面上的方向。比如北 = 0 度,东北 = 45 度,东 = 90 度,南 = 180 度等等。范围在 0 度到 360 度之间:

在此处输入图像描述

高度是从地球平面到天空中物体的角度: 在此处输入图像描述

谢谢,

拉吉

0 投票
6 回答
58014 浏览

math - 从四元数中提取偏航

我有一个旋转四元数,想提取关于上轴(偏航)的旋转角度。我正在使用 XNA,据我所知,没有内置功能。做这个的最好方式是什么?

感谢您的帮助,维纳图

0 投票
7 回答
2087 浏览

java - 四元数比较?

四元数比较可以吗?我正在编写一个四元数的 Java 类,我想实现Comparable接口以使用该Collections.sort(List<Quaternion>)工具。我不是数学专家,我真的不明白我读到的关于四元数的东西。那么,谁能告诉我我可以覆盖compareTo四元数的方法以及如何?

我的班级宣言:

0 投票
2 回答
1592 浏览

c++ - SLERP & 骨骼动画插值帮助!

我的程序中的骨骼动画工作正常,但是我在为每个骨骼存储的4x4矩阵之间以线性方式在帧之间进行插值,即

除非矩阵中有大量旋转,否则这是可以的 - 模型在关键帧之间略微挤压。

因此,我制作了一个单独的插值算法,仅将4x4矩阵的旋转部分转换为四元数,执行 SLERP,并仅将矩阵的旋转部分替换为四元数的矩阵版本。对于矩阵的平移部分,我只是以线性方式对其进行插值。

看结果,这显然是错误的!!!:'(

如果你非常了解这一切(不像我自己),你可能会想“不!这不是你做的!” - 如果是这样,请告诉我我做错了什么!

我不知道如何处理矩阵的翻译部分,因为我只能找到告诉你如何在四元数和3x3矩阵之间来回转换的资源。

任何帮助都感激不尽!!!!

0 投票
1 回答
587 浏览

objective-c - 似乎仍然有一个使用四元数的万向节锁

我使用参考四元数保持对象的位置...

我使用以下代码从 2D xy 触摸滑动旋转参考四元数...

要旋转对象,我将以下代码应用于对象中的每个 Vector 点...

它使用以下方法...

我的问题是,当对象处于 180 度左右时,如果我在 x 方向上旋转它,我无法在 y 方向上移动它。相反,如果我在 y 方向上旋转它,在旋转大约 180 度时,我无法在 x 方向上移动它。不知道我做错了什么!


发布脚本...

作为对评论员的回答,目前的整个四元数类如下: