python – 在给定顶点i的pylab中绘制3d表面

前端之家收集整理的这篇文章主要介绍了python – 在给定顶点i的pylab中绘制3d表面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有6个点,它们都位于球体的表面上,是八面体的顶点.如何在三维轴上将球体内的这个八面体的表面切割成?

我有以下代码,但它没有做我所希望的:

from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
import matplotlib.pyplot as plt

Points=[[ 0.17770898,0.72315927,0.66742804],[-0.65327074,-0.4196453,0.63018661],[ 0.65382635,0.42081934,-0.62882604],[-0.17907021,-0.72084723,-0.66956189],[-0.73452809,0.5495376,-0.39809158],[ 0.73451554,-0.55094017,0.39617148]]

fig=plt.figure()
ax =fig.add_subplot(1,1,projection='3d',aspect=1)

ax.add_collection3d(Poly3DCollection([Points]))

u = np.linspace(0,np.pi,30)
v = np.linspace(0,2 * np.pi,30)

x = np.outer(np.sin(u),np.sin(v))
y = np.outer(np.sin(u),np.cos(v))
z = np.outer(np.cos(u),np.ones_like(v))

ax.plot_wireframe(x,y,z,alpha=0.3)

plt.show()

谢谢您的帮助.

最佳答案
Poly3DCollection是多边形列表,Polygon是点列表,点是包含三个值的列表.因此,您应该将值列表列表传递给Poly3DCollection.更改以下代码

ax.add_collection3d(Poly3DCollection([Points]))

猜你在找的Python相关文章