You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

直角坐标与球坐标转换不互逆的问题咨询

直角坐标与球坐标转换不互逆的问题咨询

大家好,我最近在折腾直角坐标和球坐标的转换,碰到个百思不得其解的问题,来这儿请教下各位大佬。

我整理了一套转换公式,先给大家列出来:

直角坐标转球坐标

r = sqrt(x² + y² + z²)
theta = arccos(x/r)
phi = arccos(x/(r sin theta))

(注:之前我自己敲r的公式时犯了个笔误,现在修正成正确的形式了)

球坐标转直角坐标

x = r sin(theta) cos(phi)
y = r sin(theta) sin(phi)
z = r cos(theta)

我用第一组公式把直角坐标(0, 10, 10)转换成球坐标,算出来的结果是:

  • r = 10√2
  • theta = 90°
  • phi = 90°

但反过来用第二组公式把球坐标(10√2, 90°, 90°)转回直角坐标时,得到的结果却是(0, 10√2, 0),这和我最初的(0,10,10)完全对不上啊!

按道理来说,坐标转换应该是互逆的才对,转过去再转回来应该原封不动得到初始坐标,可现在结果差了十万八千里,我反复核对了计算过程,也没找出哪里算错了:

  • 转球坐标时:r是√(0²+10²+10²)=√200=10√2,没错;theta是arccos(0/(10√2))=90°,没问题;phi是arccos(0/(10√2 * sin90°))=arccos(0)=90°,计算也没毛病。
  • 转直角坐标时:x=10√2 * sin90° * cos90°=0,y=10√2sin90°sin90°=10√2,z=10√2*cos90°=0,结果确实是(0,10√2,0)。

有没有大佬能帮我看看是哪里出了问题?是我用的转换公式本身就错了,还是说球坐标的theta和phi的定义有不同的标准导致的?


备注:内容来源于stack exchange,提问作者nick1941

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 11:48:14