首页 > 解决方案 > 球面到笛卡尔坐标转换器

问题描述

我只是想创建一个工作球面到笛卡尔坐标转换器。但是,它没有产生正确的解决方案,我已经多次检查转换方程是否正确。更奇怪的是,这个函数可以在另一个脚本中运行,但不能单独运行。我正在使用 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)

它给我的答案是:

回答定义提供

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

标签: python

解决方案


它看起来像您的R,Phi并且Theta以度为单位,但 numpy使用弧度表示三角函数。

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

x,y,z = Sphere2Cart(R, np.deg2rad(Theta), np.deg2rad(Phi))

推荐阅读