加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 23:54:17 所属栏目:Python 来源:网络整理
导读:我有6个点,它们都位于球体的表面上,是八面体的顶点.如何在三维轴上将球体内的这个八面体的表面切割成? 我有以下代码,但它没有做我所希望的: from mpl_toolkits.mplot3d import Axes3Dfrom mpl_toolkits.mplot3d.art3d import Poly3DCollectionimport matpl

我有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]))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读