根据距离和角度从已知原点找到新的 3D 位置
Find a new 3D position from a known point of origin, based on distance and angle
我的数学很生疏,我从来都不擅长想象二维以上的事物 space。
我的问题是这样的。给定一个原点 (p1),我如何根据两个角度(偏航角和俯仰角)计算一个已知距离(100 个单位)的新点 (p2)。
我所知道的是虚拟房间的 3D 尺寸、该房间内的原点以及 Yaw 和 Pitch(我称之为水平角和垂直角)。用英语来说,我想根据它的 Yaw 和 Pitch 值从原点在这个房间内发射 100 个单位的线,并在该线的末端获得点。
我想要 space 中的这一点,因为我想使用 p1 和 p2 来定义我的线。我想最终继续在 line/plane 交集测试中使用这条线。这些平面在虚拟房间内也是已知的。我只提这个是因为我缺乏数学知识,有人可能会建议我看看其他方法。
如果你只是想定义一条线,你不需要第二个点。直线的方向向量可以直接计算为:
/ cos pitch * sin yaw \
dir = | sin pitch |
\ cos pitch * cos yaw /
这假设 y 轴指向上方。零偏航指向正 z 轴。增加偏航会将方向转向正 x 轴。这些定义都是可以互换的。
那一行是:
x = startPoint + t * dir | t \in R
如果你真的想要第二点,就用100作为t
然后计算x
。
我的数学很生疏,我从来都不擅长想象二维以上的事物 space。
我的问题是这样的。给定一个原点 (p1),我如何根据两个角度(偏航角和俯仰角)计算一个已知距离(100 个单位)的新点 (p2)。
我所知道的是虚拟房间的 3D 尺寸、该房间内的原点以及 Yaw 和 Pitch(我称之为水平角和垂直角)。用英语来说,我想根据它的 Yaw 和 Pitch 值从原点在这个房间内发射 100 个单位的线,并在该线的末端获得点。
我想要 space 中的这一点,因为我想使用 p1 和 p2 来定义我的线。我想最终继续在 line/plane 交集测试中使用这条线。这些平面在虚拟房间内也是已知的。我只提这个是因为我缺乏数学知识,有人可能会建议我看看其他方法。
如果你只是想定义一条线,你不需要第二个点。直线的方向向量可以直接计算为:
/ cos pitch * sin yaw \
dir = | sin pitch |
\ cos pitch * cos yaw /
这假设 y 轴指向上方。零偏航指向正 z 轴。增加偏航会将方向转向正 x 轴。这些定义都是可以互换的。
那一行是:
x = startPoint + t * dir | t \in R
如果你真的想要第二点,就用100作为t
然后计算x
。