我正在使用 expression2 对 Garry 的 mod 中的行为进行编程。Expression2(存档链接)
好吧,开个先例。在 Gmod 中,我有一个块,我完全不知道如何让它围绕 3 个上、下和右矢量旋转(这是局部的。即;如果我将它倾斜 45 度,则前向矢量为 0.707、0.707、 0)。从本质上讲,我希望能够从 3 个向量中获得本地 Pitch/Roll/Yaw。Local Pitch Roll Yaw 我的意思是它们完全相互独立,允许真正的 3d 旋转。例如,例如;如果我放置我的飞行器,使其鼻子平行于地板,则 X、Y、Z 将为 0,0,0。如果我将它平行于地板(世界和本地偏航)90 度,它现在是 0、0、90。如果我然后将它俯仰(世界滚动,本地俯仰)它 180 度,它现在是 180、0、90。我已经已经探索过四元数,但是我认为我不应该在这里发布我的代码,因为我认为我正在重新发明轮子。
我知道我没有很好地解释,但我相信这个问题很笼统。非常感谢任何人可以提供的任何帮助。
哦,我也想避免使用 gimblelock。
本质上是使用上/前/右矢量计算围绕每个工艺上/前/右矢量的旋转。
简单来说,一个通用的实现而不是一个特定于 Gmod 的实现是绝对好的。