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 的浏览器