来自两个角度和距离的 3D 点
3D point from two angles and a distance
我希望能够根据距离原点的距离和两个角度计算 3D 点的坐标:"yaw" 围绕 Y 轴,"pitch" 围绕 X -轴。
在示例中,距原点的距离为 50 个单位,偏航 10 度,俯仰 10 度。
是否有检索3D结果点的公式?
如果您有一个由方位角 (yaw
)、高度角 (pitch
) 和沿该方向矢量的距离定义的点,则必须变换方位角角度(yaw
)和高度角(pitch
)首先指向单位方向矢量。
参见 Solar zenith angle, Azimuth or Euler angles。
在x轴指向左侧,z轴指向前方,y轴为上向量的坐标系中(Lefthanded coordiante system),可以这样计算:
x = sin(yaw) * cos(pitch)
y = sin(pitch)
z = cos(yaw) * cos(pitch)
其中 yaw
是 z 轴与矢量到点(投影到 XZ 平面)之间的顺时针角度。
这个方向必须乘以到原点的距离:
P = distance * (x, y, z);
或
Px = distance * sin(yaw) * cos(pitch)
Py = distance * sin(pitch)
Pz = distance * cos(yaw) * cos(pitch)
我希望能够根据距离原点的距离和两个角度计算 3D 点的坐标:"yaw" 围绕 Y 轴,"pitch" 围绕 X -轴。
在示例中,距原点的距离为 50 个单位,偏航 10 度,俯仰 10 度。
是否有检索3D结果点的公式?
如果您有一个由方位角 (yaw
)、高度角 (pitch
) 和沿该方向矢量的距离定义的点,则必须变换方位角角度(yaw
)和高度角(pitch
)首先指向单位方向矢量。
参见 Solar zenith angle, Azimuth or Euler angles。
在x轴指向左侧,z轴指向前方,y轴为上向量的坐标系中(Lefthanded coordiante system),可以这样计算:
x = sin(yaw) * cos(pitch)
y = sin(pitch)
z = cos(yaw) * cos(pitch)
其中 yaw
是 z 轴与矢量到点(投影到 XZ 平面)之间的顺时针角度。
这个方向必须乘以到原点的距离:
P = distance * (x, y, z);
或
Px = distance * sin(yaw) * cos(pitch)
Py = distance * sin(pitch)
Pz = distance * cos(yaw) * cos(pitch)