1

如何在 -20 度真异常和 103 度真异常位置沿绘图添加标记?

我所拥有的是航天器沿着环绕地球的双曲线路径的轨迹,我解决了在真正异常之间飞行的时间。不幸的是,我不知道如何在路径上以指定角度标记位置。

我知道我能做到

initial = pylab.Circle((location), radius = 10, color = '#000000')
final = ....

但是我应该为位置坐标添加什么?有没有办法在没有求解坐标的蛮力方法的情况下做到这一点?

import numpy as np
import pylab

a = -35000  #  the semi-major axis of the hyperbolic trajectory                     
e = 1.2  #  the eccentricity                                                        
nu0 = -20 * np.pi / 180  #  initial anomaly                                         
nuf = 103 * np.pi / 180  #  final anomaly                                           

F0 = 2 * np.arctanh(np.sqrt((e - 1) / (e + 1)) * np.tan(nu0 / 2))

Ff = 2 * np.arctanh(np.sqrt((e - 1) / (e + 1)) * np.tan(nuf / 2))

M0 = e * np.sinh(F0) - F0

Mf = e * np.sinh(Ff) - Ff

n = np.sqrt(398600.0 / -a ** 3)  #  the mean motion                                 

deltat = (Mf - M0) / n  #  change of time in secs                                   

hours = deltat / 3600

h = np.sqrt(a * 398600 * (1 - e ** 2))


def r(nu):
    return h ** 2 / (398600 * (1 + e * np.cos(nu)))


rt = r(nu)
ext = [np.argmin(rt), np.argmax(rt)]
rt[ext] = np.nan

nu = np.linspace(0, 2 * np.pi, 500000)

fig = pylab.figure()
ax = fig.add_subplot(111, aspect = 'equal')
earth = pylab.Circle((0, 0), radius = 6378, color = 'blue')
ax.add_patch(earth)
ax.plot(rt * np.cos(nu), rt * np.sin(nu), 'r')
pylab.axis([-70000, 10000, -40000, 40000])
pylab.show()
4

0 回答 0