如何在表面后面绘制3D轨迹?

时间:2019-07-22 19:57:10

标签: python matplotlib plot 3d surface

我正在尝试绘制绕黑洞运动的光子的轨迹。我希望光子先进入黑洞,然后再进入黑洞(稳定的圆形轨道)。但是我无法绘制,我的光子在前景还是在背景。

我尝试使用zorder,但是没有用

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
ax.set_aspect('equal')

# black surface
u = np.linspace(0, 2*np.pi, 100)
v = np.linspace(0, 2*np.pi, 100)

x = rs * np.outer(np.cos(u), np.sin(v))
y = rs * np.outer(np.sin(u), np.sin(v))
z = rs * np.outer(np.ones(np.size(u)), np.cos(v))

# plot black sphere
ax.plot_surface(x, y, z, rstride=4, cstride=4, color='k', zorder=6)

# plot trajectories (photons)
ax.plot(X0, Y0, Z0, 'r', zorder=6)
ax.plot(X1, Y1, Z1, 'b', zorder=5)
ax.plot(X2, Y2, Z2, 'g', zorder=4)
ax.plot(X3, Y3, Z3, 'fuchsia', zorder=3)
ax.plot(X4, Y4, Z4, 'turquoise', zorder=2)


plt.show()

我想有一个带有光子绕行的球体。我希望看到该表面是3D球面而不是圆形,也就是说:我希望光子实际上在表面后面时在表面后面,而实际上在前面时在前面。谁能帮我吗?

0 个答案:

没有答案