【发布时间】:2021-12-30 16:12:46
【问题描述】:
很容易得到某一天被照亮的月亮百分比
import ephem
a=ephem.Moon(datetime.now())
mn=a.moon_phase #illuminated percentage of the moon.
现在我想尝试绘制它来表示月相。但是我不知道如何只填充一个圆圈的百分比来模拟地球在月球上的阴影。
我最接近的尝试是这个:
首先绘制“满月”
fig, ax = plt.subplots()
theta=np.linspace(0, 2*np.pi, 100)
r = np.sqrt(1)
c1x = r*np.cos(theta)
c1y = r*np.sin(theta)
ax.plot(c1x, c1y,color='k',lw=2,zorder=0*a)
然后添加一个更大的黑色圆圈来模拟经过月球的阴影。偏移量“xmn”会将阴影移到一边,这样只有“n”百分比的满月可见
r = np.sqrt(2)
c2x = r*np.cos(theta)
c2y = r*np.sin(theta)
xmn=1.2
ax.fill(c2x+xmn, c2y,color='k',lw=2,zorder=1*a)
终于把“满月”圈外的一切都隐藏了
#Circle to hide all circles
theta=np.linspace(0, 2*np.pi, 100)
# the radius of the circle
r = np.sqrt(4)
c3x = r*np.cos(theta)
c3y = r*np.sin(theta)
ax.plot(c3x, c3y,color='w')
ax.fill_between(c3x,c3y,c1y,color='w',zorder=2)
ax.fill_betweenx(c1x,c1y,c3y,color='w',zorder=2)
ax.set_xlim(-1.1, 1.1)
ax.set_ylim(-1.1, 1.1)
plt.show()
我找不到一个聪明的方法来做到这一点。如何找到 xmn?
提前致谢
【问题讨论】:
标签: python matplotlib plot geometry