python画三维平面-Python 绘制酷炫的三维图步骤详解
通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的:
这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图。
八面体
我们先以下面这个八面体为例。
1 安装相关包
首先安装两个必备包:
import pyrr # NumPy 的 3D 函数库
import svgwrite # svg图形处理库
2 定义 3D 图生成环境
接下来定义几个类设置好 3 维图基础环境:
viewport :矩形图范围
camera:包括视图矩阵和投影矩阵
mesh:svg 矢量图所需的网格表面矩阵、着色器和样式字典
3 生成八面体数据
然后生成八面体每个定点的数据:
def octahedron():
"""Construct an eight-sided polyhedron"""
f = sqrt(2.0) / 2.0
verts = numpy.float32([ ( 0, -1, 0), (-f, 0, f), ( f, 0, f), ( f, 0, -f), (-f, 0, -f), ( 0, 1, 0) ])
triangles = numpy.int32([ (0, 2, 1), (0, 3, 2), (0, 4, 3), (0, 1, 4), (5, 1, 2), (5, 2, 3), (5, 3, 4), (5, 4, 1) ])
return verts[triangles]
4 pyrr 包渲染
接下来利用 pyrr 3维库渲染上面的原始数据,最后生成 svg 矢量图。
5 生成 svg
上面最后一步生成 svg 图形,需要调用下面的 Engine 函数,略微有些复杂:
以上代码全部封装到类中调用,就可以生成八面体图形。
除了八面体还可以生成很多其他图形。
球体和 Klein 瓶
代码如下:
多面球体
代码如下:
发光的球体
代码实现:
还可以绘制这种曲面体
代码实现如下:
总结
以上所述是小编给大家介绍的Python 绘制酷炫的三维图,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
本文标题: Python 绘制酷炫的三维图步骤详解
本文地址: http://www.cppcns.com/jiaoben/python/265329.html
python画三维平面-Python 绘制酷炫的三维图步骤详解相关推荐
- python画spc控制图_实施SPC控制图的八个步骤详解
企业在实行SPC品质管理时,需要对过程控制的关键工序进行监控分析,而这一监控分析工具就是spc控制图,下面盈飞无限给大家主要介绍实施SPC控制图的八个步骤. 图示:实施SPC控制图的八个步骤 什么是S ...
- python画三维温度散点图-Python 绘制酷炫的三维图步骤详解
通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...
- python画三维散点图-Python 绘制酷炫的三维图步骤详解
通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...
- python画三维图-Python 绘制酷炫的三维图步骤详解
通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...
- python画3d图-Python 绘制酷炫的三维图步骤详解
通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...
- python画三维立体图-Python 绘制酷炫的三维图步骤详解
通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...
- python 三维图 背景_Python 绘制酷炫的三维图步骤详解
通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...
- python画漏斗图_python绘制漏斗图步骤详解
pyecharts中的Funnel函数可以绘制漏斗图,自动根据数据大小生成由大到小自上而下排列的一个漏斗样的图形. 1.导入Funnel模块. from pyecharts import Funnel ...
- python转盘抽奖_Python使用Tkinter实现转盘抽奖器的步骤详解
我使用 Python 中的 Tkinter 模块实现了一个简单的滚动抽奖器,接下来继续写一个简单的转盘抽奖器. 滚动抽奖器与点名的场景相似,是从一群人中抽出中奖的人,奖品是提前确定了的,抽奖只是确定中 ...
最新文章
- 微生物组学研究的可再现性、可重现性、稳定性与普适性
- Android 文件的存储和加载
- 【读书笔记】周志华《机器学习》第三版课后习题讨第一章-绪论
- 计算机开题报告中的研究方法,开题报告:经济学写论文用到的五种研究方法
- JS获取键盘码并判断按键
- 一键AI绘画-生成自己想要生成的图片(你懂的)。
- java rgb565转rgb888_RGB565 与 RGB888的相互转换 | 学步园
- php 微信代扣开发步骤,【微信支付】微信代扣开发者文档
- 怎么样把自己计算机两个硬盘合并,两个硬盘怎么合并成一个盘
- “兴趣爱好”,蜜糖or砒霜?
- MR-GMMapping:基于高斯混合模型的通信高效多机器人映射系统
- 【IVIF:特征聚合网络】
- Pentest Wiki Part5 提权
- 如果早晚都要死去,为什么还要活着?
- CString、CTime和COleDateTime转换
- 国产操作系统厂商 中科红旗Linux进入清算程序
- 为什么游戏更新不了服务器维护,自走棋手游更新不了怎么办 更新失败解决方法介绍...
- 最长公共子串与最长公共子序列
- 解决Paragon NTFS for Mac安装分卷失败的办法
- 极品鸿蒙系统 心月文谛,第五章:分身系统开启