【问题标题】:Spherical to Cartesian Coordinate Converter球面到笛卡尔坐标转换器
【发布时间】:2020-03-14 10:00:11
【问题描述】:

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


【解决方案1】:

看起来您的RPhiTheta 的单位是度数,但三角函数的uses radians 是numpy。

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

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

【讨论】:

  • 除了函数不需要应用于“r”这一事实之外,其余的都有效。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 2013-08-05
  • 1970-01-01
相关资源
最近更新 更多