科学计算三维可视化---TVTK入门(创建和显示三维对象)

时间:2023-03-09 02:11:49
科学计算三维可视化---TVTK入门(创建和显示三维对象)

一:创建一个基本的三维对象

(一)长方体操作

科学计算三维可视化---TVTK入门(创建和显示三维对象)

traits:就是TVTK对象的属性

科学计算三维可视化---TVTK入门(创建和显示三维对象)

(1)对象属性操作

科学计算三维可视化---TVTK入门(创建和显示三维对象)

>>> from tvtk.api import tvtk
>>> s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0)
>>> print(s)
>>> s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0)
>>> print(s)
vtkCubeSource (00000000004D4FC0)
Debug: Off
Modified Time:
Reference Count:
Registered Events:
Registered Observers:
vtkObserver (000000000D7E0EE0)
Event:
EventName: ModifiedEvent
Command: 00000000121045F0
Priority:
Tag:
Executive: 000000000D5E32D0
ErrorCode: No error
Information:
AbortExecute: Off
Progress:
Progress Text: (None)
X Length:
Y Length:
Z Length:
Center: (, , )
Output Points Precision:

输出数据

>>> s.center    #所在坐标系的原点
array([., ., .])
>>> s.x_length   #x轴长度
1.0
>>> s.y_length   #y轴长度
2.0
>>> s.z_length   #z轴长度
3.0
>>> s.output_points_precision  #对象的精度

(2)对象方法操作

科学计算三维可视化---TVTK入门(创建和显示三维对象)

(二)其他基本三维对象了解

科学计算三维可视化---TVTK入门(创建和显示三维对象)

>>> from tvtk.api import tvtk
>>> s = tvtk.ConeSource(height=3.0,radius=1.0,resolution=)  #高度3.0,底面圆半径1.0,底面圆分辨率36(使用36边形近似一个圆形)
>>> s.height
3.0
>>> s.radius
1.0
>>> s.resolution >>> s.center
array([., ., .])
>>> print(s)
vtkConeSource (0000000002F71530)
Debug: Off
Modified Time:
Reference Count:
Registered Events:
Registered Observers:
vtkObserver (000000000D7E0430)
Event:
EventName: ModifiedEvent
Command: 000000000D4C0CD0
Priority:
Tag:
Executive: 000000000D2998D0
ErrorCode: No error
Information: 000000000D3820C0
AbortExecute: Off
Progress:
Progress Text: (None)
Resolution:
Height:
Radius:
Capping: On
Center: (, , )
Direction: (, , )
Output Points Precision:

二:显示一个三维对象

在二维屏幕中显示一个三维对象,需要一个十分复杂的映射过程,特别是与用户交互的时候

(一)显示一个长方体

from tvtk.api import tvtk

#创建一个长方体数据源,设置其长宽高
s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0)
#使用PolyDataMapper(映射器)将数据转化为图形数据
m = tvtk.PolyDataMapper(input_connection=s.output_port) #将数据源的输出赋给映射器的输入
#创建一个Actor
a = tvtk.Actor(mapper=m) #是一个实体
#创建一个Renderer(渲染器),将Actor添加进去
r = tvtk.Renderer(background=(,,)) #显示背景设为黑色
r.add_actor(a) #将Actor添加进去
#创建一个RenderWindow(窗口),将Renderer添加进去
w = tvtk.RenderWindow(size=(,)) #创建一个显示窗口
w.add_renderer(r) #将建立的渲染器加入窗口
#创建一个RenderWindowInteractor(窗口的交互工具)
i = tvtk.RenderWindowInteractor(render_window=w) #创建一个交互工具,将窗口加入交互
#开启交互
i.initialize()
i.start()

科学计算三维可视化---TVTK入门(创建和显示三维对象)

科学计算三维可视化---TVTK入门(创建和显示三维对象)