原标题:Python 竟能绘制出如此酷炫的三维图

作者 | Jay Alammar

译者 | 高级农民工

通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的:

这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图。

八面体

我们先以下面这个八面体为例。

1 安装相关包

首先安装两个必备包:

importpyrr # NumPy 的 3D 函数库

importsvgwrite # svg图形处理库

2 定义 3D 图生成环境

接下来定义几个类设置好 3 维图基础环境:

viewport :矩形图范围

camera:包括视图矩阵和投影矩阵

mesh:svg 矢量图所需的网格表面矩阵、着色器和样式字典3 生成八面体数据

然后生成八面体每个定点的数据:

defoctahedron:

"""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) ])

returnverts[triangles]

4 pyrr 包渲染

接下来利用 pyrr 3维库渲染上面的原始数据,最后生成 svg 矢量图。

5 生成 svg

上面最后一步生成 svg 图形,需要调用下面的 Engine 函数,略微有些复杂:

以上代码全部封装到类中调用,就可以生成八面体图形了。

除了八面体还可以生成很多其他图形。

球体和 Klein 瓶

代码如下:

多面球体

代码如下:

发光的球体

代码实现:

还可以绘制这种曲面体

代码实现如下:

作者:Jay Alammar

链接:https://jalammar.github.io/visual-numpy/返回搜狐,查看更多

责任编辑:

python怎样画立体图-Python 竟能绘制出如此酷炫的三维图相关推荐

  1. python画三维立体图-Python 竟能绘制出如此酷炫的三维图

    原标题:Python 竟能绘制出如此酷炫的三维图 通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维 ...

  2. python画三维立体图难吗_万万没想到,Python竟能绘制出如此酷炫的三维图

    作者 | Jay Alammar转载自 | 高级农民工 通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制 ...

  3. python绘制3d图形-万万没想到,Python 竟能绘制出如此酷炫的三维图

    作者 | Jay Alammar 译者 | 高级农民工 通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制 ...

  4. Python 竟能绘制出如此酷炫的三维图

    点击上方"高级农民工",选择"星标"公众号 第一时间速享原创干货 作者 | Jay Alammar 译者 | 高级农民工 通常我们用 Python 绘制的都是二 ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 新建本地仓库,同步远程仓场景,出现git branch --set-upstream-to=origin/master master 解决方法...
  2. 小记mysql备份同库中一张表的历史记录
  3. 人工智能学派之间的「联姻」——Yoshua 新作居然用DL「复活」了符号主义
  4. @程序员:Java平均工资再次上涨,光张年限不涨薪的我慌了!
  5. spring事务管理 TransactionProxyFactoryBean源码分析
  6. mysql与redis面试题
  7. 入侵mysql后入侵linux_在Linux上使用MySQL的心得整理
  8. 谷歌修复又一枚遭在野利用的 Chrome 0day
  9. 日常问题解决记录三:记一次Win10安装Oracle11g后遇到的问题
  10. go 变量大写_golang学习笔记(一):包,变量,函数
  11. 威纶通与三菱PLC条码枪解码程序 本程序是威纶通触摸屏USB接头直接插条形码扫码枪
  12. 未群发消息接腾讯服务器吗,腾讯企业QQ(协同)如何设置并群发消息?
  13. 微信小游戏关系链的使用(排行榜的显示)
  14. 各类开发生产环境缩写
  15. 因果推理(causal inference)初步调研
  16. [KDD 2022]ROLAND Graph Learning Framework for Dynamic Graphs
  17. 多个pdf文件如何合并为一个文件?怎样将多个pdf文件合并到一个文件?
  18. 创维E900V22E_卡刷固件及升级说明
  19. 各个 .NET 平台的 UI 框架比较
  20. AXI Quad SPI读写Flash做远程升级

热门文章

  1. 高等几何——射影变换6
  2. vm跑linux性能,linux的vm相关参数介绍
  3. JAVA输入五中水果英文名称_用英语写所有水果的名称要附带汉语
  4. Android打开蓝牙的两种方法
  5. 若用256K×8bit的存储器芯片,构成地址40000000H到400FFFFFH且按字节编址的内存区域,则需(5)片芯片。...
  6. mac os 安装win8.1后BootCamp 控制面板无法设置触摸板
  7. 门盖总成防错动方法研究
  8. InforMix学习
  9. linux原生系统_Linux的概述
  10. WIFI已连接,无法上网