【发布时间】:2021-06-13 16:21:24
【问题描述】:
我在飞机上安装了一个摄像头。
旋转 0,0,0 是飞机向北飞行,水平飞行。
相机 0,0,0 指向前方(通过鼻子)。
当飞机偏航(将其航向变为西 270°)并进入 45° 俯冲时,偏航、俯仰和滚动的欧拉角为 (-270, 45, 0)
此时,相机正处于相同的角度 (-270, 45, 0)。
不过,现在,摄影机操作员将摄影机视点抬高 90°,然后向右平移 90°。
我的直觉告诉我,相机现在应该指向 (0, 0, 45)。
NB 我不太担心旋转的迹象,atm
我可以将两组角度转换为四元数以简化旋转,但我不知道如何旋转相机的运动相对于飞机姿态。我必须旋转旋转,但要从地球参考系开始。
如何相对于另一个当前的 3D 旋转来旋转四元数?
var absoloutePlatform = Quaternion.RotationYawPitchRoll((float)ToRadians(yaw), (float)ToRadians(pitch), (float)ToRadians(roll));
var relativeSensor = Quaternion.RotationYawPitchRoll((float)ToRadians(yaw2), (float)ToRadians(pitch2), (float)ToRadians(roll2));
var absoluteQuaterion = [[ some calculation! ]]
var absoluteSensorAngles = absoluteQuaterion.GetYawPitchRoll();
【问题讨论】:
-
所以只是为了确认一下,
relativeSensor * absoloutePlatform不是你的意思吗?我真的不明白你还有什么意思 -
@harold:这就是我最初阅读时的想法,但角度都是疯狂的......
标签: matrix-multiplication quaternions sharpdx rotational-matrices