如何使用matplotlib在Python中绘制球形多边形?

时间:2015-09-22 12:32:25

标签: python matplotlib plot convex-hull mplot3d

我有一个numpy数组vertices的形状(N,3)包含3D中球形多边形的N个顶点,即所有这些点都位于球体的表面上。球体的中心和半径是已知的(例如以单位球体为单位)。我想绘制由这些顶点限定的球面多边形。 (从数学上讲,我想绘制由这些顶点产生的球形凸包)。

如何使用matplotlib执行此操作?我试过了Poly3DCollection,但这只是绘制欧几里德多边形。我设法使用plot_surface绘制整个单位范围,如下所示:

u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
x = np.outer(np.cos(u), np.sin(v))
y = np.outer(np.sin(u), np.sin(v))
z = np.outer(np.ones(np.size(u)), np.cos(v))
ax.plot_surface(x, y, z, rstride=5, cstride=5, color='y', alpha=0.1)

我想我可以手动计算要从x, y, z中移除哪些点,然后仍然使用plot_surface来绘制多边形。这是使用matplotlib的正确方法,还是有另一个模块,我可以直接使用?

如果在matplotlib中没有方便的方法来执行此操作,您能推荐其他任何库吗?

0 个答案:

没有答案