从两个角度和一个距离的 3D 点

Xys*_*Xys 4 math 3d geometry opengl-es opengl-es-2.0

我希望能够根据它与原点的距离和两个角度来计算 3D 点的坐标:围绕 Y 轴的“偏航”和围绕 X 轴的“俯仰”。

在示例中,距原点的距离为 50 个单位,偏航 10 度,俯仰 10 度。

是否有公式来检索 3D 结果点?

形象的

Rab*_*d76 5

如果您有一个由方位角 ( yaw)、高度角 ( pitch) 和沿该方向向量的距离定义的点,则必须首先将方位角 ( yaw) 和高度角 ( pitch) 转换为单位方向向量。
请参阅太阳天顶角方位角欧拉角

在坐标系中,其中 x 轴指向左侧,z 轴指向前方,y 轴是向上向量(左手坐标系),这可以计算如下:

x = sin(yaw) * cos(pitch)
y = sin(pitch) 
z = cos(yaw) * cos(pitch)
Run Code Online (Sandbox Code Playgroud)

其中yaw是 z 轴和到该点的向量(投影到 XZ 平面)之间的顺时针角度。

这个方向必须乘以到原点的距离:

P = distance * (x, y, z); 
Run Code Online (Sandbox Code Playgroud)

或者

Px = distance * sin(yaw) * cos(pitch) 
Py = distance * sin(pitch) 
Pz = distance * cos(yaw) * cos(pitch)
Run Code Online (Sandbox Code Playgroud)