当我看到任何解释万向节锁发生的视频时,他们会用万向节机器来解释它,我完全理解它对那台机器的影响。我不明白的是,欧拉角与万向节机器的工作原理有什么关系。
我的第一困惑来自以下几个方面:
因此,我不明白万向机构如何能显示欧拉角的工作原理。
发布于 2017-05-18 13:10:57
这个问题并不是因为欧拉角不能表示所有的方向(它们可以),而是因为它们没有清晰地在两个方向之间进行内插。与物理万向节锁的类比并不是100%的准确,正如你的问题所指出的那样,但是由于条件(由于其中一个轴处于90度,系统处于接近奇点状态)。我将尝试给出一个将物理模型和虚拟模型联系起来的例子。
想象一下,在一个标准的FPS视图中,鼠标控制标题(水平旋转)和俯仰(上/下旋转),你看上去几乎是笔直向上,朝北。现在,不管你移动鼠标的高度多高,你都不能“做一个后空翻”,不让你的身体绕着头轴旋转180度(还有180度绕着滚轴(滚筒-滚轴),因为你的“后翻”视图是倒过来的,而不是仅仅是转身)。
另一种在FPS中思考问题的方法是:游戏选择你的滚动方向,这样你的显示器的顶部就会向上倾斜(所以你不会向一边倾斜)。当你直接朝上的时候,没有滚动方向允许你的“视图向上向量”不是水平的,数学上,如果你试图从这个方向上计算向上向量,你会被零除以。
现在,想象一下,在同样的情况下,飞行模拟和操纵杆。你面对的几乎是垂直的,你想要“后翻”超过垂直点。很明显,飞机上的相同动作就是稍微拉下操纵杆,而不是FPS游戏所要求的180度翻转。如果平面模拟器只是在坐标奇点上插入欧拉坐标,你就会看到平面喷出,在两个点之间做一些疯狂的180度旋转。如果飞机通过完全垂直的标记,你会得到同样的“除以零”的问题,我们在FPS中遇到的问题,因为它试图找出什么角度通过。
物理裸子植物的等效类比是,如果环都是对齐的。现在,想象一下,试图旋转内环对外环。根本就没有办法去做。那是万向节锁。如果所有的环几乎都是不对齐的,你试着旋转内环的外环上的“零标记”,你就可以旋转它,但是你会看到两个内环做180度的快速翻转,就像我们在FPS例子中注意到的那样,我们想要“做后翻”。
发布于 2016-11-09 10:32:51
边注:欧拉角自然没有旋转围绕z轴,只有围绕x和y,Tait角在另一方面有一个z角。我将在答案中将Tait-Bryan角称为Euler角。
将旋转应用于对象的方式可以使其首先通过旋转进入Gimbal锁定状态,然后当您尝试在其他轴上应用旋转时,您将无法任意旋转它。在这种情况下,轴暂时移动。
https://gamedev.stackexchange.com/questions/132819
复制相似问题