通常我们用 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 绘制酷炫的三维图步骤详解相关推荐

  1. python画spc控制图_实施SPC控制图的八个步骤详解

    企业在实行SPC品质管理时,需要对过程控制的关键工序进行监控分析,而这一监控分析工具就是spc控制图,下面盈飞无限给大家主要介绍实施SPC控制图的八个步骤. 图示:实施SPC控制图的八个步骤 什么是S ...

  2. python画三维温度散点图-Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

  3. python画三维散点图-Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

  4. python画三维图-Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

  5. python画3d图-Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

  6. python画三维立体图-Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

  7. python 三维图 背景_Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

  8. python画漏斗图_python绘制漏斗图步骤详解

    pyecharts中的Funnel函数可以绘制漏斗图,自动根据数据大小生成由大到小自上而下排列的一个漏斗样的图形. 1.导入Funnel模块. from pyecharts import Funnel ...

  9. python转盘抽奖_Python使用Tkinter实现转盘抽奖器的步骤详解

    我使用 Python 中的 Tkinter 模块实现了一个简单的滚动抽奖器,接下来继续写一个简单的转盘抽奖器. 滚动抽奖器与点名的场景相似,是从一群人中抽出中奖的人,奖品是提前确定了的,抽奖只是确定中 ...

最新文章

  1. 微生物组学研究的可再现性、可重现性、稳定性与普适性
  2. Android 文件的存储和加载
  3. 【读书笔记】周志华《机器学习》第三版课后习题讨第一章-绪论
  4. 计算机开题报告中的研究方法,开题报告:经济学写论文用到的五种研究方法
  5. JS获取键盘码并判断按键
  6. 一键AI绘画-生成自己想要生成的图片(你懂的)。
  7. java rgb565转rgb888_RGB565 与 RGB888的相互转换 | 学步园
  8. php 微信代扣开发步骤,【微信支付】微信代扣开发者文档
  9. 怎么样把自己计算机两个硬盘合并,两个硬盘怎么合并成一个盘
  10. “兴趣爱好”,蜜糖or砒霜?
  11. MR-GMMapping:基于高斯混合模型的通信高效多机器人映射系统
  12. 【IVIF:特征聚合网络】
  13. Pentest Wiki Part5 提权
  14. 如果早晚都要死去,为什么还要活着?
  15. CString、CTime和COleDateTime转换
  16. 国产操作系统厂商 中科红旗Linux进入清算程序
  17. 为什么游戏更新不了服务器维护,自走棋手游更新不了怎么办 更新失败解决方法介绍...
  18. 最长公共子串与最长公共子序列
  19. 解决Paragon NTFS for Mac安装分卷失败的办法
  20. 极品鸿蒙系统 心月文谛,第五章:分身系统开启

热门文章

  1. 16年寒假随笔(2)
  2. 让 Python 代码更易维护的七种武器——代码风格(pylint、Flake8、Isort、Autopep8、Yapf、Black)测试覆盖率(Coverage)CI(JK)...
  3. VAE--就是AutoEncoder的编码输出服从正态分布
  4. FATE 集群部署 step1
  5. nopi设置excel只读
  6. centos修改SSH端口并禁用root远程登录
  7. 消息 35371-聚集列存储索引
  8. 道路游戏(洛谷 P1070)
  9. RP2836 OUT0-OUT7 对应关系
  10. 摄像头(Ov965x)驱动分析