如何将 point3d 数组从笛卡尔坐标转换为球坐标系?

myW*_*SON -1 .net c# geometry

如何将 point3d 数组从笛卡尔坐标转换为球坐标系(假设其几何中心在球坐标系中为 0,0,0)?

MiM*_*iMo 5

Wikipedia复制公式,将其应用于数组中的每个条目:

r = Math.Sqrt(p.X*p.X + p.Y*p.Y + p.Z*p.Z);
if (r == 0) {
  theta = 0;
  phi = 0;
} else {
  theta = Math.Acos(p.Z/r);
  phi = Math.Atan2(p.Y, p.X);
}
Run Code Online (Sandbox Code Playgroud)