球面至直角坐标转换器

问题描述 投票:0回答:1

我只是试图创建一个有效的球面到笛卡尔坐标转换器。但是,它不能提供正确的解决方案,并且我已经多次检查了转换方程是否正确。更为奇怪的是,该函数可以在另一个脚本中运行,但不能单独运行。我正在使用Spyder。为什么会这样?

import numpy as np

R = 0.02
Phi = 90
Theta = 0

def Sphere2Cart(r,theta,phi):
    xOut = r*np.sin(phi)*np.cos(theta)
    yOut = r*np.sin(phi)*np.sin(theta)
    zOut = r*np.cos(phi)
    return xOut,yOut,zOut

x,y,z = Sphere2Cart(R,Theta,Phi)

答案给了我:

Answer the definition provides

正确的答案应该是:(x,y,z)=(0.02,0,0)

python
1个回答
2
投票

[您的RPhiTheta看起来像度,但是对于三角函数来说为numpy uses radians

要将值转换为弧度,请使用np.deg2rad()(或math.radians()):

x,y,z = Sphere2Cart(R, np.deg2rad(Theta), np.deg2rad(Phi))
© www.soinside.com 2019 - 2024. All rights reserved.