计算原点与x,y,z坐标之间的θ和ø角度

时间:2015-07-02 19:59:12

标签: javascript math 3d

我正在使用three.js进行小型3D POC项目。以下代码段计算原点(0,0,0)周围轨道中3D对象的新x,y,z位置:

x = rho * Math.cos(theta) * Math.sin(phi);
y = rho * Math.sin(theta) * Math.sin(phi);
z = rho * Math.cos(phi);

在上面的示例中, theta phi 是已知的,用于计算轨道3D主体的新x,y,z坐标。

以上效果很好,但我也想反过来。

我如何计算 theta phi ,如果我只有一个x,y,z点,这一切与原点有关(0, 0,0)?

1 个答案:

答案 0 :(得分:1)

IIRC

r = Math.sqrt(x*x + y*y + z*z);
θ = Math.acos(z/r);
φ = Math.atan2(y, x);

x = r * Math.sin(θ) * Math.cos(φ);
y = r * Math.sin(θ) * Math.sin(φ);
z = r * Math.cos(θ);

您似乎将θφ换了相反的方式(这只是一种符号选择)