前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

欢迎关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。

通常我们用 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绘制二维图,如果用来绘制三维图会有什么效果?...相关推荐

  1. python可以引流吗_你都用 Python 来做什么?

    不是搞科研的,工作用Java开发的,Python一般用来做一些辅助性的运维.分析.自动化工作. 个人生活自动化win-lockfetch 用Win 10的同学都知道Win10有一套自动更新的锁屏壁纸. ...

  2. 底层用python、前台用什么_你都用 Python 来做什么?

    拿来了解女朋友情绪变化,顺道自动回复. 6.14号更新:接入图灵机器人,可以自动回复的版本加入图灵机器人的版本来了七月在线:"对不起,分手吧,我爱上了你做的聊天机器人."​zhua ...

  3. python国内书籍推荐_这些都是Python官方推荐的最好的书籍

    转行学Python有前途吗?这个答案是肯定的,AI课程都已经进入小学教材了,未来Python趋势无疑是光明的,但是如何学习Python,很多Python小白都来问小编有什么适合的Python入门书籍推 ...

  4. 以下哪个不是python财经数据接口工具_这7种Python的全新玩法,大部分人都不知道!...

    Python第三方模块众多,下面我介绍一些比较实用而又有趣的模块,主要分为爬虫.数据处理.可视化.机器学习.神经网络.股票财经.游戏这7个方面,主要内容如下: 创一个小群,供大家学习交流聊天 如果有对 ...

  5. 二维数组 类型_「初识C语言」二维数组

    一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量.在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量. ...

  6. 只安装python能干什么_你都用 Python 来做什么?

    人在美国,刚下飞机,这个问题要先拉一拉时间轴2016年第一次接触 python,做的是自动化测试 2017年开始自学 python,做的是投票网页开发 2018年正式接触 python,做的是WAF机 ...

  7. python能帮我们实现什么用_你都用 Python 来做什么?

    「除了生孩子,Python 啥都能做!!!」这句话最近实在是有些火啊,难道 Python 就真的这么强吗?当然,不信咱们可以看一下数据 这是近期 TIOBE 公布的 2019 年 10 月编程语言排行 ...

  8. python分类模型干嘛的_你都用 Python 来做什么?

    作为计算机专业的学生,主要学习的是c++.在大二选修了python,如今过去了一年,可以说这一年里python对我来说用处颇多.下面就列举一下我学习python到现在都用它来做了什么. 1. 学pyt ...

  9. python高端玩法_这7种Python的全新玩法,一般人都不知道!

    Python第三方模块众多,下面我介绍一些比较实用而又有趣的模块,主要分为爬虫.数据处理.可视化.机器学习.神经网络.股票财经.游戏这7个方面. 主要内容如下: 1.爬虫:相信大部分人都用Python ...

最新文章

  1. 利用requests库访问网站
  2. 独立成分分析 ( ICA ) 与主成分分析 ( PCA )再解析
  3. 用FTP客户端实现主机和虚拟机之间文件的传输(方法1)
  4. 从外部CorDapp扩展和覆盖流
  5. 黑苹果 电脑关机是因为发生了问题_【电脑常识】常见的电脑误区,你中了几点?...
  6. 新手学电脑入门教程_3Dmax难学嘛?3Dmax到底好不好学
  7. 【AJAX 教程】JS 原生 AJAX 请求
  8. 专业技术计算机应用能力考试ppt2007,全国专业技术人员计算机应用能力考试PPT题库.pdf...
  9. HTML5常用的文本标签及css字体样式属性
  10. ubuntu安装水星MW150US无线网卡8188eu驱动
  11. 【DB笔试面试702】在Oracle中,如何定时清理INACTIVE状态的会话?
  12. 全栈设计师必须拥有的Mac软件推荐
  13. 晶体管发明往事:误打误撞,反目成仇,共享诺贝尔奖
  14. 信息化和软件服务业司参加工业互联网平台与软件化发展高峰论坛
  15. 织梦插件-全自动SEO织梦插件
  16. 2023最新姆町个人自动发卡系统源码+全开源的/功能丰富UI美观
  17. c语言程序设计基础教程 金艳,重庆理工大-C语言程序设计基础教程_习题答案(纪纲_金艳).doc...
  18. 手把手带你搞懂AMS启动原理
  19. openwrt下载安装中文语言包(离线版)
  20. 用创新思维实现跨越式发展

热门文章

  1. 兼容ie8的rem.js在ie下没有用
  2. Android仿超级课程表开源控件
  3. 薄膜?活塞?哪种执行器推力大?
  4. python输入城市找省份_python爬虫学习之爬取全国各省市县级城市邮政编码
  5. overleaf | 参考文献的简单引用
  6. miui10 android版本,新年首次更新!MIUI V10.2.2稳定版基于安卓9.0来了
  7. 《自然》杂志:锻炼如何健脑?有望治疗老年痴呆症 | 经济学人全球早报精选
  8. 大厂 Framework 面试必备 HandlerBinder 面试题
  9. Adobe Air最新免费版
  10. 中文正则,Notepad++中文正则