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

Calculate θ and ø angles between origin and x,y,z coordinate

我正在使用 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);

在上面的例子中,thetaphi 是已知的,用于计算轨道的新 x、y、z 坐标3D主题。

上面的效果很好,但我也想反过来

如果我只有一个 x,y,z 点,我该如何计算 thetaphi,这一切都在与原点 (0,0,0)?

的关系

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(θ);

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