Python画正方体
画个立方体
在matplotlib
中,通过plt.voxels
绘制立方体,下面先绘制一个最质朴的立方体
代码为
import matplotlib.pyplot as plt
import numpy as npx, y, z = np.indices((2, 2, 2))
filled = np.ones((1,1,1))
ax = plt.subplot(projection='3d')
ax.voxels(x,y,z, filled=filled)
plt.show()
其中,x,y,z
表示顶点,filled
表示被填充的区域。由于其顶点数量为2×2×22\times2\times22×2×2,故只有一个立方体,从而filled
是一个1×1×11\times1\times11×1×1的张量。
按照这个思路,可以做一个魔方
x, y, z = np.indices((4, 4, 4))
filled = np.ones((3,3,3))
cFace = np.where(filled, '#00AAAAA0', '#00AAAAA0')
cEdge = np.where(filled, '#008888', '#008888')
ax = plt.subplot(projection='3d')
ax.voxels(x,y,z, filled=filled, facecolors=cFace, edgecolors=cEdge)
plt.show()
其效果为
由于x,y,zx,y,zx,y,z均为4×4×44\times4\times44×4×4,则这些顶点共分割出3×3×33\times3\times33×3×3的立方体,而filled
填充,facecolors
对面上色以及edgecolors
对线上色,都是针对这3×3×33\times3\times33×3×3的立方体而言的。其中,颜色的格式是RGBA,A就是透明度。
接下来,做一个八叉树的示意图
ax = plt.subplot(projection='3d')
ax.set_xlim(0,2)
ax.set_ylim(0,2)
ax.set_zlim(0,2)
ax.axis('off')x, y, z = np.indices((3, 3, 3))
filled = np.ones((2,2,2))
filled[1,1,1] = False #(1,1,1)这个立方体将要继续被分割
cFace = np.where(filled, '#00AAAACC', '#00AAAACC')
cEdge = np.where(filled, '#008888', '#008888')
ax.voxels(x,y,z, filled=filled, facecolors=cFace, edgecolors=cEdge) #第一次分割x, y, z = np.indices((3, 3, 3))/2+1
cFace = np.where(filled, '#00AA00DD', '#00AA00DD')
cEdge = np.where(filled, '#008800', '#008800')
ax.voxels(x,y,z, filled=filled, facecolors=cFace, edgecolors=cEdge) #第二次分割x, y, z = np.indices((3, 3, 3))/4+1.5
filled[1,1,1] = True
cFace = np.where(filled, '#0000AAEE', '#0000AAEE')
cEdge = np.where(filled, '#000000', '#000000')
ax.voxels(x,y,z, filled=filled, facecolors=cFace, edgecolors=cEdge) #第三次分割plt.show()
其效果为
Python画正方体相关推荐
- python画正方体_python的matplotlib的3种正方体的画法及代码分析
1 说明: 1.1 适合收藏,纯技术性探讨,适合孩子对正方体的认识和自己对编程代码的熟悉. 1.2 python3.8和matplotlib版本问题. 1.3 推荐指数:★★ 2 无numpy法 2. ...
- python画正方体_python绘制立方体的方法
本文实例为大家分享了python绘制立方体的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # This is (almost) a direct C++ to Pyt ...
- 使用Python中的Turtle库画正方体
使用Python中的Turtle库画正方体 先献上画完之后的图形,还有些许瑕疵,例如虚线没有对齐,有待于后续微调 以下是实现代码 # encoding=utf-8 import turtle# 画正面 ...
- 【圣诞节限定】教你用Python画圣诞树,做个浪漫的程序员
最近在各大社交平台看到好多圣诞树,看到大佬们画的圣诞树一个比一个精致,我也特别想尝试画一棵特别的圣诞树.下面是我画的一棵简易的圣诞树,虽然和网络上大佬们的圣诞树相比不是很精致,但是对于萌新们来说,画这 ...
- 怎么用python画个电脑_python语言还是java如何用python画爱心
用python绘制爱心的基本步骤如下: 002pc.com对<python语言还是java如何用python画爱心>总结来说,为我们学习Python很实用. 首先先下载安装好python程 ...
- 开学季,教你用Python画大学教室座位神分区图!网友直呼“中枪”
作者 | 丁彦军 转载自恋习Python(ID:sldata2017) 我们上过大学的朋友们都知道,大学没有固定教室也没有固定的座位,所以大家可以随便找个自己喜欢的位置坐下. 别看这些不起眼的座位,感 ...
- 圣诞节!教你用Python画棵圣诞树
作者 | 糖甜甜甜,985高校经管研二,擅长用 Python.R.tableau 等工具结合统计学和机器学习模型做数据分析. 来源 | 经管人学数据分析(ID:DAT-2017) 如何用Python画 ...
- 用python画时序图源代码_使用python实现画AR模型时序图
背景: 用python画AR模型的时序图. 结果: 代码: import numpy as np import matplotlib.pyplot as plt """ ...
- 用python画微信捂脸_用 Python 画一个捂脸表情
微信中的捂脸表情相信大家都不陌生,我见过以及自己使用这个表情的频率都是比较高的,可以说这个表情算是大部分人的主打表情之一了,本文我使用 Python 来画一下这个表情,我们使用到的库还是 turtle ...
最新文章
- 剑指offer:二维数组中的查找python实现
- 谷歌、OpenAI等警告:BERT、GPT-3等大型语言模型都有一个重大缺陷,很危险...
- Java线程详解(18)-障碍器
- php+curlmultiinit_多线程 - PHP的curl_multi_init并发测试问题
- 分贝(BD)的含义以及关系(有助于深刻理解)
- 移动端页面不需要在meta加_移动端适配viewport缩放方案
- 拼音模糊搜索 php,基于 XunSearch(迅搜)SDK 的全文搜索 Laravel 5.* 软件包,支持全拼、拼音简写、模糊搜索、热门搜索、搜索提示...
- ESP8285 sdkconfig
- 专科计算机毕业论文范文 致谢,大专毕业设计致谢模板(精选范文3篇)
- matlab巴特沃斯滤波器算法解释,巴特沃斯滤波器原理.doc
- 打印機lpt接口轉com接口
- 武田收到CHMP同意ALUNBRIG® (brigatinib)用于ALK+非小细胞肺癌一线治疗的肯定意见
- Gmail邮箱登陆问题解决方案
- C解决duplicate symbol
- hdu 4622 Reincarnation(hash)
- 沁透著一片悠然禪意 《掬水》
- 如何远程登陆Linux服务器
- [‘1‘,‘2‘,‘3‘].map(parseInt)结果讲解
- STM32 高级定时器周期、频率、占空比、对外输出电压详解
- mac迅雷精简教程,get一下吧!
热门文章
- 怎样获得手机的外网ip???
- 汉澳sinox载入ntfs硬盘,移动ntfs硬盘,u盘 并读写完全成功
- 消息中间件:选型分析。
- 求平方根的牛顿迭代matlab程序,牛顿迭代法求平方根
- unity手游之聊天SDK集成与使用一
- “21 天好习惯”第一期-7
- AC695X_FCCBQB认证资料获取[杰理全系列]
- python字符串转json(python字符串转浮点数)
- 对网页 ‘’为所欲为‘’ 之手动实现深色模式?
- 帆软报表决策系统跨域登录