问题标签 [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 投票
1 回答
205 浏览

c++ - 此代码导致哪个欧拉角顺序?

使用数学库 GLM,我使用此代码将欧拉角旋转组合到旋转矩阵。

这会导致 XYZ 或 ZYX 的欧拉角序列吗?我不确定,因为矩阵乘法的行为与标量乘法不同。

0 投票
0 回答
305 浏览

orientation - 将方向和速度转换为位置

我有一个位于(x,y,z)时间的尸体t0。我知道身体以恒定的速度移动,s。身体的方向是(h,p,r)(航向俯仰和滚动)。我想在t几秒钟后计算身体的位置作为x,y,z,h,p,r. 我该怎么做呢?谢谢你。

0 投票
3 回答
4716 浏览

c++ - 使用 OpenCV、C++ 和 Image 2D 进行头部姿势估计 - 几何方法 - 滚动、偏航和俯仰

我试图根据 2D 图像找到人脸的三个角度二维图像

我正在使用带有 HaarCascade 的 OpenCV 来查找脸部、眼睛、鼻子和嘴巴。但我没有找到任何几何方法可以帮助我找到角度 X、Y 和 Z(Roll、Pitch 和 Yaw)。

有人可以帮我展示一些在 c++ 或 java 中有效的方法吗?

0 投票
1 回答
1201 浏览

android - Android磁力计计算高度

是否可以使用 Android 磁力计获得我所在位置的高度?如果是,我该如何计算高度?据我了解,我从 Android API 中获得了三个坐标 x、y 和 z 以及特斯拉的磁场强度。我可以将这些坐标转换为欧拉角来确定位置,但我不知道我是否可以计算出高度。有人知道这一点并且能够帮助我在不使用 GPS 的情况下计算出海拔高度吗?

0 投票
1 回答
755 浏览

graphics - 从旋转矩阵求解的欧拉角之间的平滑过渡

我有一个 3*3 的旋转矩阵 R。现在,可以求解这个旋转矩阵以获得旋转矩阵的欧拉角。(https://truesculpt.googlecode.com/hg-history/38000e9dfece971460473d5788c235fbbe82f31b/Doc/rotation_matrix_to_euler.pdf

现在,假设我有一种情况,我使用旋转矩阵围绕轴旋转物体。现在,对于每个无穷小旋转,我求解其欧拉角集的旋转矩阵。由于存在多组(实际上是 2 组)欧拉角作为解决方案,我如何确保(在代码中)我选择欧拉角组以使物体的旋转是连续的?

0 投票
1 回答
190 浏览

javascript - 让节点层次结构中的节点面向相机(广告牌)

我需要使节点层次结构中的一个节点面向相机,或者换句话说,成为一个广告牌。对于每个节点,我将其世界矩阵和世界旋转存储为四元数。根据我对四元数的了解,我想要的操作是获取相机四元数和节点的旋转四元数之间的差异,并通过所述差异简单地旋转节点。

我的相机存储为欧拉角,所以我通过首先创建 X 轴旋转,然后是 Z 轴旋转(我没有 Y 轴旋转)并将它们相乘来构造相机四元数。

从那里它只是一些数学来获得差异并最终从中创建一个旋转矩阵,并将节点的世界矩阵与它相乘。

然而,这最终导致节点像疯子一样旋转,并且决不面向相机。

以下是相关的 JavaScript 代码:

我犯了一些明显的错误吗?

0 投票
1 回答
388 浏览

rotation - 为什么这两个代表四元数和欧拉角的旋转矩阵不一样?

以下是围绕单位四元数 {q0,q1,q2,q3} 旋转角度 alpha 的表示:

这里,beta_x、beta_y 和 beta_z 是单位四元数的方向余弦,即我旋转的轴。

与this对应的旋转矩阵如下:我们称它为R1

现在,假设我的旋转矩阵用欧拉角来表示:我们称之为R2

在此处输入图像描述

R2 首先围绕 x 轴旋转 phi,然后围绕 y 轴旋转 theta,最后围绕 z 轴旋转 psi。现在,假设我的旋转轴在 yz 平面上。这意味着没有围绕 x 轴的旋转,只有围绕 y 轴和 z 轴的旋转组合。这意味着 phi 为零,这意味着R2(3,2) 为零。

或者,这也意味着 cos(beta_x) 为零,因为没有绕 x 轴旋转。这意味着 q_1 为零。但是,如果我们看 R1(3,2),它不是零,不像 R2(3,2)。为什么这两个表示不一样?我错过了什么?

0 投票
1 回答
5024 浏览

c# - 向四元数添加欧拉角

我想为现有的四元数添加欧拉角。这是我得到的:

我只想有偏航和俯仰旋转。旧变换具有此属性。我添加的欧拉角也只是俯仰和偏航旋转。当我乘以它时会发生什么,oldTransform 描述的旋转引入了滚动旋转。

然后我尝试了:

这不会引入滚动旋转。此选项更糟糕,因为当 oldTransform 将偏航轴旋转到俯仰轴上时,它具有万向节锁定。

现在我可以想象的是,人们从 oldTransform 获取旧的偏航和俯仰旋转并修改偏航和俯仰轴,使它们不再是 (0,1,0) 和 (1,0,0)。这里的问题是,当我从四元数中提取欧拉角时,我也会得到万向节锁。

那么如何将特定轴的欧拉角添加到四元数?

0 投票
1 回答
840 浏览

c++ - 用给定时间插值欧拉角/旋转矩阵

如何在给定时间(或速度)的 2 个欧拉角之间正确插值?

例如,我想实现一个简单的眨眼,首先向下旋转盖子,然后再向上旋转。眨眼的时间应该在 50 到 500 毫秒之间。目前我只是计算 x 值(向下):

每个计算步骤稍后都会从麻袋中弹出并以100 赫兹的速率应用于节点。这种方法可以快速或慢速闪烁,但它看起来并不正确。我不考虑眼睑的速度,而且这里的“插值”真的很脏......将欧拉转换为四元数或旋转矩阵更好吗?

像眨眼(500 毫秒)这样的功能,它考虑在 70 毫秒内向下 280 毫米/秒的峰值速度并以大约 100 毫米/秒的速度张开眼睑,这对我很有帮助。

0 投票
1 回答
697 浏览

c# - 四元数转欧拉算法。getPitch() 返回楠?

我正在尝试转换从传感器获得的四元数并通过计算 theta 来获得音高。如果有人有兴趣,请看这篇文章- 第 2 章

我的问题出在以下代码中:

euler 1 得到的音调总是返回 Nan(不是数字) 我不确定我是否正确实现了算法。出于某种原因,Asin(d),其中 d 的输出为 >1 且 <-1。