问题标签 [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.
c++ - 此代码导致哪个欧拉角顺序?
使用数学库 GLM,我使用此代码将欧拉角旋转组合到旋转矩阵。
这会导致 XYZ 或 ZYX 的欧拉角序列吗?我不确定,因为矩阵乘法的行为与标量乘法不同。
orientation - 将方向和速度转换为位置
我有一个位于(x,y,z)
时间的尸体t0
。我知道身体以恒定的速度移动,s
。身体的方向是(h,p,r)
(航向俯仰和滚动)。我想在t
几秒钟后计算身体的位置作为x,y,z,h,p,r
. 我该怎么做呢?谢谢你。
c++ - 使用 OpenCV、C++ 和 Image 2D 进行头部姿势估计 - 几何方法 - 滚动、偏航和俯仰
我试图根据 2D 图像找到人脸的三个角度。
我正在使用带有 HaarCascade 的 OpenCV 来查找脸部、眼睛、鼻子和嘴巴。但我没有找到任何几何方法可以帮助我找到角度 X、Y 和 Z(Roll、Pitch 和 Yaw)。
有人可以帮我展示一些在 c++ 或 java 中有效的方法吗?
android - Android磁力计计算高度
是否可以使用 Android 磁力计获得我所在位置的高度?如果是,我该如何计算高度?据我了解,我从 Android API 中获得了三个坐标 x、y 和 z 以及特斯拉的磁场强度。我可以将这些坐标转换为欧拉角来确定位置,但我不知道我是否可以计算出高度。有人知道这一点并且能够帮助我在不使用 GPS 的情况下计算出海拔高度吗?
graphics - 从旋转矩阵求解的欧拉角之间的平滑过渡
我有一个 3*3 的旋转矩阵 R。现在,可以求解这个旋转矩阵以获得旋转矩阵的欧拉角。(https://truesculpt.googlecode.com/hg-history/38000e9dfece971460473d5788c235fbbe82f31b/Doc/rotation_matrix_to_euler.pdf)
现在,假设我有一种情况,我使用旋转矩阵围绕轴旋转物体。现在,对于每个无穷小旋转,我求解其欧拉角集的旋转矩阵。由于存在多组(实际上是 2 组)欧拉角作为解决方案,我如何确保(在代码中)我选择欧拉角组以使物体的旋转是连续的?
javascript - 让节点层次结构中的节点面向相机(广告牌)
我需要使节点层次结构中的一个节点面向相机,或者换句话说,成为一个广告牌。对于每个节点,我将其世界矩阵和世界旋转存储为四元数。根据我对四元数的了解,我想要的操作是获取相机四元数和节点的旋转四元数之间的差异,并通过所述差异简单地旋转节点。
我的相机存储为欧拉角,所以我通过首先创建 X 轴旋转,然后是 Z 轴旋转(我没有 Y 轴旋转)并将它们相乘来构造相机四元数。
从那里它只是一些数学来获得差异并最终从中创建一个旋转矩阵,并将节点的世界矩阵与它相乘。
然而,这最终导致节点像疯子一样旋转,并且决不面向相机。
以下是相关的 JavaScript 代码:
我犯了一些明显的错误吗?
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)。为什么这两个表示不一样?我错过了什么?
c# - 向四元数添加欧拉角
我想为现有的四元数添加欧拉角。这是我得到的:
我只想有偏航和俯仰旋转。旧变换具有此属性。我添加的欧拉角也只是俯仰和偏航旋转。当我乘以它时会发生什么,oldTransform 描述的旋转引入了滚动旋转。
然后我尝试了:
这不会引入滚动旋转。此选项更糟糕,因为当 oldTransform 将偏航轴旋转到俯仰轴上时,它具有万向节锁定。
现在我可以想象的是,人们从 oldTransform 获取旧的偏航和俯仰旋转并修改偏航和俯仰轴,使它们不再是 (0,1,0) 和 (1,0,0)。这里的问题是,当我从四元数中提取欧拉角时,我也会得到万向节锁。
那么如何将特定轴的欧拉角添加到四元数?
c++ - 用给定时间插值欧拉角/旋转矩阵
如何在给定时间(或速度)的 2 个欧拉角之间正确插值?
例如,我想实现一个简单的眨眼,首先向下旋转盖子,然后再向上旋转。眨眼的时间应该在 50 到 500 毫秒之间。目前我只是计算 x 值(向下):
每个计算步骤稍后都会从麻袋中弹出并以100 赫兹的速率应用于节点。这种方法可以快速或慢速闪烁,但它看起来并不正确。我不考虑眼睑的速度,而且这里的“插值”真的很脏......将欧拉转换为四元数或旋转矩阵更好吗?
像眨眼(500 毫秒)这样的功能,它考虑在 70 毫秒内向下 280 毫米/秒的峰值速度并以大约 100 毫米/秒的速度张开眼睑,这对我很有帮助。
c# - 四元数转欧拉算法。getPitch() 返回楠?
我正在尝试转换从传感器获得的四元数并通过计算 theta 来获得音高。如果有人有兴趣,请看这篇文章- 第 2 章
我的问题出在以下代码中:
euler 1 得到的音调总是返回 Nan(不是数字) 我不确定我是否正确实现了算法。出于某种原因,Asin(d),其中 d 的输出为 >1 且 <-1。