栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Python 3中绘制3D多边形

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Python 3中绘制3D多边形

我在压缩时遇到了类似的问题。我支持论点,这是python 2.x vs 3.x的东西。

但是,我发现了一个明显可行的地方:

from mpl_toolkits.mplot3d import Axes3Dfrom mpl_toolkits.mplot3d.art3d import Poly3DCollectionimport matplotlib.pyplot as pltfig = plt.figure()ax = Axes3D(fig)x = [0, 1, 1, 0]y = [0, 0, 1, 1]z = [0, 1, 0, 1]verts = [list(zip(x, y, z))]print(verts)ax.add_collection3d(Poly3DCollection(verts), zs='z')plt.show()

因此,我进行了两项更改:

  1. 将行替换为
    from matplotlib.collections import Poly3DCollection
    from matplotlib.mplot3.art3d import Poly3DCollection

我不知道您的导入语句来自何处,但它似乎对我不起作用

  1. 改了行:
    verts = list(zip(x,y,z))
    verts = [list(zip(x, y, z))]

不知何故,后者似乎起作用。刚开始使用python时,我无法提供明确的解释。但是,这里什么也没做:Poly3DCollection类要求将“集合”作为第一个输入参数,因此需要一个列表列表。在这种情况下,仅给出列表,因此假定其错过了一个等级。通过向它添加另一个级别(通过[…]),它起作用了。

我不知道这种解释是否合理,但是直觉上适合我;)

这些修改似乎可以正常工作,因为此代码创建了所需的3D多边形(我注意到,由于这是我的第一篇文章,所以我不允许发布布丁证明....)

希望这是有用的,

亲切的问候



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645804.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号