python - 球面到笛卡尔坐标转换器
问题描述
我只是想创建一个工作球面到笛卡尔坐标转换器。但是,它没有产生正确的解决方案,我已经多次检查转换方程是否正确。更奇怪的是,这个函数可以在另一个脚本中运行,但不能单独运行。我正在使用 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)
解决方案
它看起来像您的R
,Phi
并且Theta
以度为单位,但 numpy使用弧度表示三角函数。
要将值转换为弧度,请使用np.deg2rad()
(或math.radians()
):
x,y,z = Sphere2Cart(R, np.deg2rad(Theta), np.deg2rad(Phi))
推荐阅读
- azure - 如何在 Kudu(Azure) 的 java 密钥库中导入受信任的证书或密钥库
- python - 熊猫爆炸失败,KeyError:0
- rabbitmq - RabbitMQ 跟踪消息处理
- angular - 我在一个具有不同位置的组件(一页)中有两个带有 Angular Material 的下拉菜单,我想为每个提供唯一的类
- c - 为什么 curl 无法使用受密码保护的密钥?
- java - 变量仅在 while 循环内失去价值
- .net-core - 更新、创建或删除 EF Core
- javascript - 如何在 Nuxt 中使路由区分大小写
- python - 如何使用元类和命令行调用 python 类
- java - Spring boot2 抱怨 CircuitBreakerConfigurationOnMissingBean