0

以下是球坐标到笛卡尔坐标的转换

X = r cosθ sinΦ 
Y = r sinθ sinΦ 
Z = rcosΦ

我们正在使用反向计算从定义为的笛卡尔坐标计算球坐标

r = √(x^2+y^2+z^2 ) 
θ = atan⁡(Y./X) 
Φ = atan⁡(√(X^2+Y^2 )./Z)

当 Y 和 X 为零时会出现问题,因此 θ 可以取任意值,因此在 Matlab 计算期间,这会导致 NAN(不是数字),这会使 θ 不连续。是否有任何插值技术来消除这种不连续性以及在这种情况下如何解释 θ。

θ 是不同点的矩阵,它给出了以下结果,它具有代表不连续性的跳跃和黑色补丁,而我需要生成具有平滑变化的以下图像。请查看获得的 theta 并通过单击链接更正 theta 变化并提出一些更改建议。 Discontinuous_Theta_variation 正确的 Theta 变化

4

1 回答 1

0

在进行笛卡尔坐标系到球坐标系的转换时,这里写的公式是正确的,但您首先需要了解它们的物理意义。

'r' 是点到原点的距离。θ 是从正 x 轴到通过将给定点投影到 XY 平面所形成的直线的角度。Φ 是从正 z 轴到连接原点和给定点的线的角度。 http://www.learningaboutelectronics.com/Articles/Cartesian-rectangular-to-spherical-coordinate-converter-calculator.php#answer

也就是说,对于 X 和 Y 坐标为 0 的点,这意味着它位于 z 轴上,因此它在 XY 平面上的投影位于原点。所以我们不能准确地确定原点与 X 轴的角度。但请注意,由于该点位于 Z 轴上,所以 Φ=0 或 pi(取决于 Z 是正还是负)。

因此,在编写这个问题时,您可以采用这种方法,首先检查 Φ,如果它是 0 或 pi,那么 theta = 0(默认情况下)。我希望这能达到目的。

于 2016-01-26T04:12:31.620 回答