问题标签 [euler-angles]

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 投票
4 回答
5363 浏览

.net - 如何将 ZXZ 旋转矩阵转换为欧拉角?

我正在使用 Catia 软件。当我在我的 CAD 绘图中查询对象的位置时,系统返回一个 3x4 矩阵

[轮换 | 翻译]

我认为旋转以 ZXZ 方式表示,但为了进一步处理,我想将该旋转矩阵转换为 XYZ 表示法,这是可行的吗?

编辑:

我的对象位于 [ 0, 0, 1000 ] Catia 给出的方向是

当我尝试将自己的点 [0, 0, 50] 相乘时(只是 Z 轴上的偏移量)

这就是让我相信旋转矩阵不是右手符号的 XYZ 的原因。

0 投票
1 回答
2240 浏览

android - 将 Sensor.TYPE_ORIENTATION 中的值转换为欧拉角?

我必须在 Android 中编写一个指南针应用程序。用户在屏幕上看到的唯一东西是一个带有红色墙壁的立方体,它必须指向北方。这并不重要。重要的是,我需要根据设备本身的旋转来旋转该立方体,以便无论手机如何握住,红墙都继续指向北方。我的代码简单明了:

我添加了这个额外的方向变量,它只存储手机的显示屏是向下还是向上。我不知道我是否需要它,但它似乎修复了一些错误。我正在使用适用于 android 的SensorSimulator,但每当我的音高滑块进入 [-90, 90] 区间时,其他变量就会混淆。就好像他们得到了 180 的偏移量。但是我无法检测到我何时处于这个区间,因为音高的范围是从 -90 到 90,所以我可以从左边移动那个滑块来写,我将永远处于那个区间。

这一切只是为了向您展示我的代码进步了多远。我并不是说应该如何解决这个问题,因为我可能只会让自己陷入死胡同。你看,我已经尝试编写那个应用程序 3 天了,你可以想象我的老板有多生气。我已经阅读了各种教程,并尝试了我能找到或想到的每一个公式。所以请帮助我。我所要做的就是知道如何旋转我的立方体,它的旋转角度是以度为单位的欧拉角。

0 投票
0 回答
594 浏览

c++ - 如何将四元数旋转转换为欧拉角?

我一直在互联网上搜索,但找不到将四元数符号中的旋转转换为欧拉角的方法。有办法吗?

0 投票
1 回答
1571 浏览

matlab - MATLAB旋转问题

大家好,我需要 3D shepp logan 幻象的旋转版本及其对应的旋转矩阵。现在事情是这样的,我使用一个名为 phantom3d 的函数来创建 3D SLP,该函数允许欧拉角指定旋转。例如:

现在根据文献,您可以使用以下方法计算旋转矩阵:

但是,如果我将使用 phantom3d 创建的图像与将旋转矩阵应用于非旋转图像的函数进行比较,它们不会以相同的方式旋转。查看这张图片的旋转版本的代码是:

所以我实际上需要让 img & img2 相同,但事实并非如此。我发现在某些情况下,我将 psi、phi 和 theta 设置为 45,然后在创建 img2 时将 180 添加到 phi,它给出了相同的结果,因此与它有一些关系,但我似乎找不到它。

任何人有任何想法,建议,帮助?

多谢

0 投票
1 回答
1014 浏览

ios - Core Motion - 将局部欧拉角转换为另一个参考系统

我在将局部欧拉角转换为另一个参考系统的角度时遇到了数学问题。假设我们有一部与车辆轴线对齐的 iPhone,我想测量侧倾角,那么 iPhone 的侧倾角等于设备的侧倾角。但是,如果 iPhone 倾斜安装怎么办。在这种情况下,我必须将局部欧拉角转换为另一个参考系(例如汽车)。有人可以指出我正确的方向吗?

0 投票
1 回答
6640 浏览

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

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

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

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

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

在此处输入图像描述

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

谢谢,

拉吉

0 投票
3 回答
3523 浏览

android - Android FaceDetector.Face Euler 角度一直为0

我正在尝试获取 FaceDetector 检测到的人脸的欧拉角。

这是我用来输出到 Logcat 的内容:

但它总是返回 0.0 对于所有三个,无论面部处于什么角度。任何想法为什么?

0 投票
4 回答
4794 浏览

math - 用另一个四元数的偏航部分校正一个四元数的偏航部分

我有以下问题:来自运动捕捉设备的四元数 (q1) 需要通过来自第二个跟踪对象导出的另一个方向四元数 (q2) 的偏航角(并且只有偏航!)来校正,以便俯仰和滚动q1 的偏航角与之前相同,但 q1 具有 q2 的偏航角。

工作解决方案是将四元组转换为矩阵,然后进行计算以提取旋转角度,然后进行航向校正。但是,当直接在某个轴的方向上时(例如,在 0° - 359° 之后),这会导致“翻转”。还尝试了其他不方便的转换。

是否有可能直接在四元数上进行数学运算而不转换为矩阵或欧拉角(即,我可以将校正的四元数设置为跟踪对象的四元数)?

如前所述 - 校正应仅包括围绕上轴(偏航)的旋转。我没有太多关于数学课的编程可能性(不幸的是,来自 Virtools 的 VSL 脚本在这个方向上非常有限)。有人有什么建议吗?

0 投票
2 回答
2703 浏览

opengl - 将局部旋转添加到全局旋转

我尝试了许多公式和转换,但没有给我预期的结果。

场景非常简单:

3DS Max等3D软件如何将局部旋转增量“转化”为全局绝对旋转?

一个例子可以帮助你理解:3DS Max - Maya - Modo(三个都给了我相同的结果,所以我倾向于相信这个结果是正确的。)假设绝对旋转顺序为XYZ。

在这些转换之后,按照这个顺序,我查看了 World Absolute 旋转,我看到的是X:40.524 Y:-28.024 Z:-21.881

他们是如何达到这个结果的?什么样的公式?使用矩阵、欧拉角或四元数,无论如何,我怎样才能得到相同的结果?

谢谢你。

PS:一个简单的解决方案可以是使用四元数或矩阵,将局部旋转添加到全局中,然后检索绝对结果。但这并不好用,因为这样我们无法控制旋转顺序,结果总是使用公式的顺序来检索值。

0 投票
1 回答
3202 浏览

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

首先,我已经做了很多谷歌搜索并检查了有关此的其他 stackoverflow 帖子,但无法获得有效的回复或工作代码片段。数学不是我的强项。

我需要一个例程来获取一个相机点(CX,CY,CZ)并将其围绕一个观察点(LX,LY,LZ)旋转三个旋转角度(RX,RY,RZ)。在某些我需要避免的情况下,使用欧拉旋转会导致万向节锁定。所以我听说过使用四元数。

我发现这可以将旋转转换为四元数 http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm

这从四元数转换回欧拉 XYZ 旋转 http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/index.htm

它们似乎工作正常,但我需要知道如何使用四元数围绕 LX、LY、LZ 旋转 CX、CY、CZ,然后返回新的 CX、CY、CZ 而不会出现万向节锁定问题。

关于这方面的内容太多了,我相信一个很好的解释和代码片段不仅会帮助我,而且会在未来帮助许多其他人。

因此,如果可以,请提供帮助。非常感谢。