3D可视化笔记

  • 原始数据对象
  • 数据映射器对象Mapper
  • 演员/实体对象Actor
  • 场景对象Renderer
  • 窗口对象Window / 浏览器GUI对象与窗口对象


基本原理是流水线绘制,使用VTK库和TVTK库操作。VTK是完全面向对象设计,TVTK是VTK的简单包装。而且TVTK比较简洁,可以节省相当的代码量
所有的操作都是面向对象设计,可直接理解为:

  • 对象名.方法名
  • 对象名.属性名
  • 库名.方法名
  • 下面展示流水线具体流程(每一个步骤经操作后的对象,都传递给下一步作为输入):

原始数据对象

创建形状数据源对象。
用.STLReader方法导入STL文件,STL文件可由CAD等软件建模而成

数据映射器对象Mapper

创建映射器对象Mapper。
将数据源对象src与mapper对象的输入连接,实现原数据到图形数据的转换。

演员/实体对象Actor

创建实体对象。
将Mapper对象传递给Actor

场景对象Renderer

创建场景,类似于搭建一个舞台,设置好舞台大小
用.AddActor(myact)方法放入演员

若是多演员对象以上的数据源、映射器、演员都需要分别独立设置,只需要在最后把所有演员放入一个舞台即可,下一步窗口也是创建一个即可

若是创建浏览器,可以跳过这一步

窗口对象Window / 浏览器GUI对象与窗口对象

创建窗口对象,类似于创建一个剧院,放入场景(载入剧目),使用Initialize方法和Start方法初始化和启动窗口

创建浏览器GUI对象等于是直接创建了一个电视节目,并且不需要搭建舞台了,直接让演员Actor去电视台(GUI)表演即可。
并且可根据需要选择是否执行实时互动功能(命令行)

mybrowser = ivtk.IVTKWithBrowser(size = (1000, 600))    # 创建不含 Python Shell 的浏览器
mybrowser = ivtk.IVTKWithCrustAndBrowser(size = (1000, 600)) # 创建含 Python Shell 的浏览器