问题标签 [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 回答
5041 浏览

opengl-es - 来自模型/视图矩阵的 OpenGL 相机方向向量

我正在制作一个小游戏,我想在我面对的方向上扔一个物体。问题是我的(相机)方向是由模型/视图矩阵决定的。这个矩阵是由系统提供的(在安卓设备上)。

如何计算矢量,该矢量将用作我抛出的物体的速度矢量?
我尝试将一些向量与矩阵相乘,但结果并没有给我一个线索如何完成这个。

矩阵仅包含旋转部分(无缩放、倾斜或平移)。
我正在使用 OpenGL ES 1.1,但这可能并不重要。

按照这个答案,我能够获得围绕每个轴的旋转角度,但我仍然不知道如何从中建立我的速度矢量。

编辑:我想要完成的是以任何方式旋转模型/视图矩阵,并以我面对的方式抛出对象。我需要物体最终加速到地面。如果我知道我(相机)面对的确切矢量,我计算这个轨迹没有问题。

谢谢你的帮助。

0 投票
2 回答
3376 浏览

pid - 180度偏航角不连续如何处理

我正在研究车辆控制并使用 9DOF 传感器(加速度计、磁力计和陀螺仪)。对于偏航角,我在 pi rad 处存在不连续性问题。(180 度)。我正在使用 PID 控制器控制车辆,当车辆转弯超过 180 度时,标志突然改变(从 180 到 -180),这使得控制器行为怪异。当它转动超过-180度时也会出现同样的问题。

作为方法,我使用方向余弦矩阵来计算欧拉角。(Sparkfun 传感器的推荐方法。)

我的问题是我应该使用什么样的方法?在使用PID控制器控制偏航角的情况下如何处理这种不连续性。

0 投票
1 回答
7756 浏览

c# - 查找两个法线向量之间的 x,y,z 旋转

我在 3D 空间中有两个正方形。我想找到它们之间的 x,y,z 角度。我首先找到两个正方形的法线向量,然后我试图弄清楚如何获得它们之间的角度。

我正在使用 XNA (C#) Vector3 对象。

我计算的法线向量如下:

我想找到使 normal1 与 normal2 面对相同方式的欧拉旋转

0 投票
1 回答
1369 浏览

javascript - 来自模拟传感器数据的欧拉角 9dof

我正在寻找基于 javascript 中的模拟传感器数据计算欧拉角。传感器数据包括 3d 中的陀螺仪、加速度计和磁力计数据。数学有点过头了,正在寻找任何帮助或提示。

谢谢!

0 投票
2 回答
764 浏览

c++ - 欧拉旋转应该存储为三个矩阵还是一个矩阵?

我正在尝试用 C++ 创建一个简单的矩阵库,希望以后能够在游戏开发中使用它。

我已经完成了基本的实现,但我刚刚意识到每个对象只存储一个矩阵的问题:旋转顺序会很快混淆。

据我所知:AB != BA

因此,如果我不断地将任意旋转乘以我的矩阵,那么旋转就会混淆,对吗?就我而言,我需要在 Y 轴上全局旋转,在 X 轴上局部旋转(在 Z 轴上局部旋转也不错)。这些似乎是普通第一人称射击游戏的品质。所以通过“混合”,我的意思是如果我在 Y 轴(或 Z 轴)上旋转,那么它将开始围绕局部 X 轴旋转,而不是预期的轴(如果这有任何意义)。

所以,这些是我想出的解决方案:

  1. 保留3个欧拉角,当一个角发生变化时,按照正确的顺序重建矩阵
  2. 保留3个矩阵,每个轴一个
  3. 在乘法过程中以某种方式破坏矩阵,然后正确地重建它(?)

还是我什么都不担心?我的疑虑是假的吗,订单会以某种方式神奇地自行解决?

0 投票
4 回答
43377 浏览

c++ - 欧拉角到四元数然后四元数到欧拉角

我正在使用 lib glm ( http://glm.g-truc.net/ ) 测试四元数,但我遇到了问题;当我将欧拉角转换为四元数然后立即将四元数转换为欧拉角时,我的结果与我最初的欧拉角完全不同。这是正常的吗?可能是因为轮换不是交流的吗?

代码测试:

结果:

提前谢谢你o/

0 投票
1 回答
3945 浏览

bulletphysics - 将 [-90, 90] 范围内的偏航欧拉角转换为 [0, 360]

是否可以转换从子弹物理引擎获得的偏航欧拉角使用

在 [0 , 360] 范围内。否则,对于 360 度旋转,我得到的欧拉角从 0->90->0-> -90 -> 0 变化

但我想从 0->90->180->270->0

我的图形 API 只接受 0 到 360 范围内的旋转角度


嗯,0->90->0->-90 是音高值。这是我现在使用的代码:

我试图为音高的负值添加 180,但这不起作用。好吧,看来我需要找到另一种使用欧拉角平滑旋转网格的方法。


更新:看来我不应该直接使用项目符号功能。更好的选择是直接处理基矩阵:

所以这给了我关于 y 轴的旋转。现在关于其他 2 ....呸!

0 投票
1 回答
1673 浏览

opengl - 从顶部和底部的两个 3D 点/一个不对称对象的向量中提取三个欧拉角

我知道一条线上的两个 3D 点(不对称物体的顶部和底部),并且想找到欧拉角(沿 x、y 和 z 轴的旋转)。

示例:需要对以下 OpenGL 代码进行逆向工程,以下仅是展示场景的示例。

现在在某些情况下,我只得到 p1 和 p2,我需要知道欧拉角(沿 x、y 和 z 轴的旋转)。如何?

这是我尝试过的,答案应该是 (Rx, Ry, Rz): (4, -3, -11),

我没有得到完全正确的答案,尤其是沿 Y 的旋转根本不正确。我认为 p1 和 p2 在沿 y 轴旋转时都位于 y 轴上,所以问题是。那么什么是最好的解决方案?

0 投票
1 回答
1457 浏览

rotation - 偏航、俯仰和滚动到 vectorDir 和 vectorUp

我有一个对象的偏航、俯仰和滚动,我需要将其转换为 vectorDir 和 vectorUp。有人知道怎么做吗?

0 投票
1 回答
1654 浏览

math - 使用旋转矩阵的身体轴到地球轴?[openGL]

我目前正在从事一个项目,该项目应该将从陀螺仪收集的数据表示为一个简单的 3d 图形,但我写的内容并不完全奏效——我只是整合了轴,然后旋转了对象。

一直在寻找解决方案,发现了一个叫做旋转矩阵的东西,但我不太明白它是如何工作的——猜想我需要取起始角度 [0,0,0] 并将它们转换成这样的矩阵,然后取陀螺数据 [yaw ,pitch,roll] 并将它们转换为相似的矩阵,将它们相乘并根据这个新矩阵计算新的角度?每次我使用以前的矩阵作为“基础”获得新的陀螺数据包时重复这个?

我做对了吗?我需要的是如何旋转已经旋转的对象,在某个地方有关于这个主题的任何资源吗?一直在寻找“3d 旋转矩阵”,但不是我一直在寻找的...