在下面的代码中,“绘图”未正确绘制线:这些线并不能精确地经过我的所有点。为什么?我究竟做错了什么?我将Microsoft Visual Studio与Python 3.7(64位)一起使用。我使用Adobe Illustrator 16.0.0(64位)打开图像,将其扩展20倍(因为我的项目需要大图像),然后得到类似附件的图像。
import numpy as np
import matplotlib.pyplot as mplpp
RA = [2.007128649, 4.71238898, 0.916297857, 2.007128649]
Dec = [-1.439896633, -1.439896633, -1.483529864, -1.483529864]
x = []
y = []
num = 100
for i in range(0, 4, 2):
if (RA[i] == RA[i + 1]):
alfa = RA[i]
for t in range(0, num + 1, 1):
delta = Dec[i] + (Dec[i + 1] - Dec[i]) * (t / num)
x.append((np.pi/2 + delta) * np.cos(alfa))
y.append((np.pi/2 + delta) * np.sin(alfa))
elif (Dec[i] == Dec[i + 1]):
delta = Dec[i]
if (RA[i + 1] - RA[i] <= -np.pi):
var_alfa = RA[i + 1] - RA[i] + 2*np.pi
elif (RA[i + 1] - RA[i] >= np.pi):
var_alfa = RA[i + 1] - RA[i] - 2*np.pi
else:
var_alfa = RA[i + 1] - RA[i]
for t in range(0, num + 1, 1):
alfa = RA[i] + var_alfa * (t / num)
x.append((np.pi/2.0 + delta) * np.cos(alfa))
y.append((np.pi/2.0 + delta) * np.sin(alfa))
mplpp.scatter(x, y, color = 'r', s = 0.005)
mplpp.plot(x, y, color = 'g', linewidth = 0.1)
mplpp.fill(x, y, color = 'b', linewidth = 0.1, fill = False)
mplpp.axis('off')
mplpp.axis('equal')
mplpp.savefig('image.ps', transparent = True, dpi = 100)
print("Done...")