调整摄像机坐标以表示方位角,仰角和滚动值的变化

时间:2011-06-20 15:51:56

标签: qt math transform 3d

我目前正在使用libQGLViewer,我正在接收来自传感器的数据流,其中包含 方位角 海拔 滚动 值,3 欧拉角

这个问题可以看作是代表飞机的相机,以及方位,高度和平面移动的变化。

我需要一组通用的变换矩阵来变换摄像机点和向上矢量来表示这一点,但我不确定如何计算它们,因为每次旋转后旋转的轴会发生变化(我想?)。 / p>

要么是这样,要么只是将方位角,仰角,滚动值传递给相机并且有一些功能为我做?我知道cameraPosition.setOrientation(Quaterion something)可能有用,但我无法理解它。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

例如,您可以将三个矩阵围绕坐标轴旋转,分别插入角度,并将这三个矩阵相乘以得到最终的旋转矩阵(但使用正确的乘法顺序)。

您也可以从欧拉角度计算四元数。看看here的想法。请记住,你总是必须使用欧拉角的正确顺序(无论你的三个值是什么意思),也许还有一些实验(那些不同的欧拉常规总是让我发疯)。

编辑:回复您的评论:这是按轮换顺序计算的。像v'= XYZv那样应用的矩阵对应于关于z的旋转,未改变的y然后是未改变的x,其等于x,y'然后是z''。因此,您必须密切注意轴(您的方位像方位角的意思)以及围绕这些轴旋转的顺序。