安装:pip install vtk

学习一个东西最快的方法是知道基本原理和用途

VTK有啥用

不能做游戏。适合快速开发绘制静态三维模型。所以类似多用途折叠工具刀用处多,但是不能用在特别费劲的场合。

VTK工作流程(大致看看对vtk各模块做的事有点印象即可)

读 取 图 形 数 据 → 过 滤 → 建 图 → 构 建 执 行 单 元 → 渲 染 → 打 开 渲 染 窗 口 → 交 互 界 面 读取图形数据\rightarrow过滤\rightarrow建图\rightarrow构建执行单元\rightarrow渲染\rightarrow打开渲染窗口\rightarrow交互界面 读取图形数据→过滤→建图→构建执行单元→渲染→打开渲染窗口→交互界面

1. 读取数据

  • vtkStructuredPointsReader()读取*.vtk文件
  • vtkSTLReader()读取*.stl文件

2. 过滤(自己写算法)

3. 建图(将点拼接在一起并填充):vtkPolyDataMapper(vtkPolyData)

4. 执行单元: vtkActor()

一个独立三维模型、一个立方体、一个球就是一个执行单元,这是个对象。它有自己的属性(纹理、朝向、位置等)。

5. 渲染vtkRenderer()

将各个执行单元和背景安装某个视角绘制在一起。此时还看不到图形,因为没有创建窗口。第6步才是创建窗口。

6. 创建渲染窗口 vtkRenderWindow()

7. 交互控制vtkRenderWindowInteractor()

就是我们平常用鼠标可以拖来拖去旋转着看三维模型就是这个类负责。

VTK编程实践(可以细节的看了):画一个立方体

百年不变的步骤:

python使用vtk绘制立方体代码(不理解的可以回头看看vtk各部分做什么的):

import vtk
# 1. 读取数据
cube = vtk.vtkCubeSource()
cube.Update()#记得加这句不加看不到模型
# 2. 建图(将点拼接成立方体)
cube_mapper = vtk.vtkPolyDataMapper()
cube_mapper.SetInputData(cube.GetOutput())
# 3. 根据2创建执行单元
cube_actor = vtk.vtkActor()
cube_actor.SetMapper(cube_mapper)cube_actor.GetProperty().SetColor(1.0, 0.0, 0.0)
# 4. 渲染(将执行单元和背景组合在一起按照某个视角绘制)
renderer = vtk.vtkRenderer()
renderer.SetBackground(0.0, 0.0, 0.0)#背景只有一个所以是Set()
renderer.AddActor(cube_actor)#因为actor有可能为多个所以是add()# 5. 显示渲染窗口
render_window = vtk.vtkRenderWindow()
render_window.SetWindowName("My First Cube")
render_window.SetSize(400,400)
render_window.AddRenderer(renderer)# 渲染也会有可能有多个渲染把他们一起显示
# 6. 创建交互控键(可以用鼠标拖来拖去看三维模型)
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(render_window)
interactor.Initialize()
render_window.Render()
interactor.Start()

运行结果


参考文献:
[1]http://www.cb.uu.se/~aht/Vis2014/lecture2.pdf

Python使用VTK三维3D图形绘制入门教程相关推荐

  1. python绘制3d动态模型_Python使用VTK三维3D图形绘制入门教程

    安装:pip install vtk 学习一个东西最快的方法是知道基本原理和用途 VTK有啥用 不能做游戏.适合快速开发绘制静态三维模型.所以类似多用途折叠工具刀用处多,但是不能用在特别费劲的场合. ...

  2. SVG图形绘制入门第一弹

    IT入门的路超级漫长--任何时候都发现有完全没听过的东西,比如说下方--原来认为svg就是图片,想着也是跟Ps一样画出来的,现在知道了竟然是用代码写的--,这条路我不知道啥时候才能进步到幼儿园的级别! ...

  3. 《基于 DirectX11 的 3D 图形程序设计案例教程》学习四 D3DTriangle

    源程序:   此次例子的大部分代码均拷贝自上一章 InitD3D 例子程序.   d3dUtility.h /********************************************* ...

  4. 3D脚本 maxscript入门教程(6)

    3D脚本 maxscript入门教程(6) (2013-05-23 19:59:32) 转载▼ 标签: 建模 maxscript 3dmax it 分类: 脚本 * 这是伏羲先天八卦,乾1兑2离3震4 ...

  5. 3D脚本 maxscript入门教程(7)

    3D脚本 maxscript入门教程(7) (2013-05-23 19:59:40) 转载▼ 标签: it 分类: 脚本 --创建地面-- ground=plane length:300 width ...

  6. autocad2007二维图画法_CAD二维图形绘制的教程

    一般来说,大家使用CAD绘制的图形都是二维的,这些二维图形其实不难.接下来就是学习啦小编精心整理的一些关于CAD二维图形绘制的教程的相关资料,供你参考. CAD二维图形绘制的教程 1.绘图菜单绘图菜单 ...

  7. python turtle库画图案-python库之turtle(图形绘制) 开启新的快乐源泉

    相信有不少人学习python 都是听了老前辈的推荐 "学python好,python有趣的代码多" 比如说画一只小狮子 这就是今天想要介绍的绘制图形库-turtle 如果也想这样画 ...

  8. 图解opengl 3D 图形绘制实例

    VC6 下载 http://blog.csdn.net/bcbobo21cn/article/details/44200205 opengl环境配置 http://blog.csdn.net/bcbo ...

  9. python爬图片代码大全_爬虫入门教程⑩— 用漂亮的图表展示爬取到的数据

    经过了前面的努力,我们成功获取到了数据,并且学会了保存,但是只是用网页展示出来,是不是有一些不够美观呢? 所以本节的内容是:数据的可视化.拿到了数据却不能使其简单易懂并且足够突出,那就是不是好的数据工 ...

最新文章

  1. git 使用详解(5)—— get log 查看提交历史
  2. python文件读取输出-Python 读取和输出到txt
  3. hash 建表 query 统计重复个数
  4. android circleimageview 导入到eclipse,android项目从Eclipse迁移到Android studio中常见问题解决方法.pdf...
  5. LeetCode Algorithm 1. 两数之和
  6. P4180-[BJWC2010]严格次小生成树【Kruskal,倍增】
  7. module_param的使用
  8. POJ-1904-King's Quest(强连通图)
  9. String.raw()方法
  10. leaflet自定标签json_Windows Terminal更新后,自定义配置失效?快捷键无法使用?
  11. R 语言的学习 —— 环境准备与安装
  12. C++基础语法-01-引用
  13. 重庆大学数模美赛预选——城市救护车模型
  14. python求15 17 23 65 97的因数_Python练习题
  15. 当前的安全设置不允许从该位置下载文件。 的解决办法
  16. 不等号属于不等式吗_什么是不等式
  17. MapReduce案例:手机流量的统计
  18. STM32---RESET按键功能
  19. 【C语言经典100例】-- 06 用*号输出字母C的图案
  20. 2017年【最全+细心全看】App Store 审核指南

热门文章

  1. Mac专业屏幕录像软件:RecordAnyVID
  2. 【历史上的今天】1 月 27 日:iPad 12 周年;甲骨文收购 Sun;Jim Clark 出走硅图
  3. 秒懂Git之配置(配置git默认编辑器为vscode或者notepad++)
  4. 黑客常用端口利用总结
  5. SAFe 6.0(一)
  6. Java毕业设计_基于JAVAWeb和Android的随堂练习软件
  7. 微商爆款彩妆货源代理去哪找货源
  8. GoDB开发踩坑记(代码实现)
  9. 马哥高端Go语言百万并发高薪班7期2022
  10. pytest——04 pytest.mark.xxx