相机俯仰/偏航转换为方向向量

13

我要做的是从我的相机发射一条光线。我知道相机的x、y和z坐标,以及它的俯仰角和偏航角。我需要计算其方向向量,以便将其传递给我的光线跟踪算法。

相机的上向量为(0, 1, 0)。“俯仰角”是相对于相机而言的,是向上或向下看。

(如果必须要用矩阵,我也可以接受)


为什么反对矩阵?对我来说,这似乎是最合理的方法。太混乱了,太昂贵了吗?如果你不使用矩阵,你只能使用大量三角函数来设计它,这最终会做同样的事情。 - Tim
1个回答

14

假设你的坐标系设置满足以下条件:

(pitch, yaw)  -> (x, y, z)
(0,     0)    -> (1, 0, 0)
(pi/2,  0)    -> (0, 1, 0)
(0,    -pi/2) -> (0, 0, 1)
这将计算(x,y,z):
xzLen = cos(pitch)
x = xzLen * cos(yaw)
y = sin(pitch)
z = xzLen * sin(-yaw)

太棒了,这帮了我很多:D - CyanPrime
@Neil Forrester,xzlen是什么意思?我在哪里可以找到公式的数学推导? - wangdq
xzLen 是将单位向量投影到包含 x 和 z 轴的平面后,在所需方向上的长度。该公式直接遵循 sin() 和 cos() 的定义。 - Neil Forrester

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接