从3D空间中的点和方向获取第二点



我有一个点:

x1 = 100;
z1 = 100;
y1 = 100;

和2个方向:

xDir = Math.PI;
yDir = 0.11;

和一个范围:

range = 100;

从此信息构造光线时,如何计算终点。我尝试了以下内容:

x2 = x1 + (range * Math.cos(xDir))
z2 = z1 + (range * Math.sin(xDir))
y2 = y1 + (range * Math.cos(yDir))

但是,当射线指向任何地方,而是朝着完美的水平方向指向时,这是行不通的。因为我不在前2行中考虑YDIR。我如何找到正确的终点?

似乎您想在球形坐标系(特定系统 - 带OXZ赤道平面(中与方位角/倾斜角一起工作。

在这种情况下,您需要考虑使用X/z时y:

x2 = x1 + (range * Math.cos(xDir) * Math.sin(yDir))
z2 = z1 + (range * Math.sin(xDir) * Math.sin(yDir))
y2 = y1 + (range * Math.cos(yDir))

最新更新