一:数据集
三维可视化的第一步是选用合适的数据结构来表示数据,TVTK提供了多种表示不同种类数据的数据集
![科学计算三维可视化---TVTK管线与数据加载(数据集) 科学计算三维可视化---TVTK管线与数据加载(数据集)](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTMwOTUxOC8yMDE4MDcvMTMwOTUxOC0yMDE4MDcxMjE1MTU0ODAzNy0xMDc0NzUzOTUucG5n.png?w=700&webp=1)
![科学计算三维可视化---TVTK管线与数据加载(数据集) 科学计算三维可视化---TVTK管线与数据加载(数据集)](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTMwOTUxOC8yMDE4MDcvMTMwOTUxOC0yMDE4MDcxMjE1MTU1ODgyNy0xODQ4MjAxODE2LnBuZw%3D%3D.png?w=700&webp=1)
![科学计算三维可视化---TVTK管线与数据加载(数据集) 科学计算三维可视化---TVTK管线与数据加载(数据集)](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTMwOTUxOC8yMDE4MDcvMTMwOTUxOC0yMDE4MDcxMjE1MTYxMTg3MS0xODQ0NjgxODUxLnBuZw%3D%3D.png?w=700&webp=1)
(一)数据集--ImageData
![科学计算三维可视化---TVTK管线与数据加载(数据集) 科学计算三维可视化---TVTK管线与数据加载(数据集)](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTMwOTUxOC8yMDE4MDcvMTMwOTUxOC0yMDE4MDcxMjE1MTgwOTM0NS01OTI2ODIwNzMucG5n.png?w=700&webp=1)
>>> from tvtk.api import tvtk
>>> img = tvtk.ImageData(spacing=(,,),origin=(,,),dimensions=(,,))
>>> img.get_point()
(1.0, 2.0, 3.0)
>>> for n in range(): #只是输出了6个点,不止这么多
... print("%.1f,%.1f,%.1f"%img.get_point(n))
...
1.0,2.0,3.0
2.0,2.0,3.0
3.0,2.0,3.0
1.0,3.0,3.0
2.0,3.0,3.0
3.0,3.0,3.0
>>>
![科学计算三维可视化---TVTK管线与数据加载(数据集) 科学计算三维可视化---TVTK管线与数据加载(数据集)](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTMwOTUxOC8yMDE4MDcvMTMwOTUxOC0yMDE4MDcxMjE1MTkxNDM4MC0xNjQxMjk3OTcxLnBuZw%3D%3D.png?w=700&webp=1)
(二)数据集--RectilinearGrid
![科学计算三维可视化---TVTK管线与数据加载(数据集) 科学计算三维可视化---TVTK管线与数据加载(数据集)](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTMwOTUxOC8yMDE4MDcvMTMwOTUxOC0yMDE4MDcxMjE1MzMxMTQ1OC0xMTEyNDA4NTQ3LnBuZw%3D%3D.png?w=700&webp=1)
from tvtk.api import tvtk
import numpy as np
x = np.array([,,,]) #x轴4个点长度
y = np.array([,,]) #y轴3个点长度
z = np.array([,,]) #z轴3个点长度
r = tvtk.RectilinearGrid() #完成构建
r.x_coordinates = x #分别设置给各个点坐标
r.y_coordinates = y
r.z_coordinates = z
r.dimensions = len(x),len(y),len(z)
for n in range():
print(r.get_point(n))
(0.0, 0.0, 0.0) #和ImageData数据一样,分别沿着x,y,z方向进行递增
(3.0, 0.0, 0.0) #向x
(9.0, 0.0, 0.0)
(15.0, 0.0, 0.0)
(0.0, 1.0, 0.0) #向y增1
(3.0, 1.0, 0.0) #继续x
(三)数据集--StructuredGrid
![科学计算三维可视化---TVTK管线与数据加载(数据集) 科学计算三维可视化---TVTK管线与数据加载(数据集)](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTMwOTUxOC8yMDE4MDcvMTMwOTUxOC0yMDE4MDcxMjE1NDY1MDY1NS00MjcyNjA3NDIucG5n.png?w=700&webp=1)
(四)数据集--PolyData
![科学计算三维可视化---TVTK管线与数据加载(数据集) 科学计算三维可视化---TVTK管线与数据加载(数据集)](https://image.shishitao.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTMwOTUxOC8yMDE4MDcvMTMwOTUxOC0yMDE4MDcxMjE1NDgwNTg0Ni0xMjE0NDI5OTkxLnBuZw%3D%3D.png?w=700&webp=1)