首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制轨道TypeError:需要浮点数

绘制轨道TypeError:需要浮点数
EN

Stack Overflow用户
提问于 2019-09-22 02:34:33
回答 1查看 32关注 0票数 0

我遇到了一个问题,一颗卫星正在离地球中心p=15000公里的高度绕地球运行。我需要使用方程r= p/1-e*cos( theta )创建一个从地球表面到θ的高度与0- 360之间的高度的表,增量为30度,其中e代表偏心,p是15000公里。我得到e= 0,0.2,0.7。执行以下操作将导致浮点错误。我猜想这是因为我试图用整数绘制theta的数字列表,但我不知道如何修复它。

代码语言:javascript
复制
pi = 3.14159 
eccentricity = 0
theta = pi/6, pi/4, pi/3, pi/2, 2*pi/3, 3*pi/4, 5*pi/6, pi, 7*pi/6, 5*pi/4, 4*pi/3, 3*pi/2, 5*pi/3, 7*pi/4, 11*pi/6, 2*pi
p = 8629 #15000 - radius of Earth in km

def r(eccentricity, p, theta):
    return p/(1-eccentricity*math.cos(theta))

print r(eccentricity, p, theta)
EN

回答 1

Stack Overflow用户

发布于 2019-09-22 02:47:10

由于theta是浮点数的元组,因此不能将其传递给需要单个浮点数的函数。

您有两个选择:

使用列表理解计算高度:

代码语言:javascript
复制
heights = [r(eccentricity, p, th) for th in theta]

使用numpy,它允许直接使用数组

代码语言:javascript
复制
import numpy as np
theta = np.array(theta)
heights = r(eccentricity, p, theta)

编辑:由于您使用的是theta,因此可以使用以下命令来简化您的numpy数组

代码语言:javascript
复制
theta = np.deg2rad(np.arange(0, 360, 30))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58043062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档