我有一个vertices
形状 (N,3) 的 numpy 数组,其中包含 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)
Run Code Online (Sandbox Code Playgroud)
我想人们可以手动计算要从中删除哪些点x, y, z
,然后仍然使用这些点plot_surface
来绘制多边形。这是正确的使用方法matplotlib
还是它有另一个我可以直接使用的模块?
如果没有方便的方法来做到这一点matplotlib
,你能推荐任何其他库吗?