编译vtk程序的makefile
在给定三角网格曲面数据之后,在程序运行过程中可能需要改变网格顶点的坐标,应该如何做才能在改变网格顶点坐标后能让图形显示该顶点的坐标也改变了呢 此处的三角网格去面数据由VTK格式的文件修改得到,分两个文件存储,以a.asc和b.asc为例,其中a.asc存放各顶点坐标信息,第一个数为点数(下例中的8),后面的为三维坐标值,如: 8 4.554705 199.1733 8.394049 3.584999 199.5536 10.1685 3.740701 198.7712 12.61608 3.796498 200.5667 7.51842 3.798301 197.8998 9.092709 3.892305 198.6992 6.968771 3.918405 202.3646 0.5173612 3.932501 197.3231 11.20268 上面的文件内容说明有8个顶点,坐标分别为文件中接下来的内容。 b.asc则用来存放面表,其实就是顶点的id信息,也就是一个多边形由哪几个顶点组成,按顺序排放,但第一个数据仍然是个数——多边形的个数,如下面的文件: 3 3 0 1 2 3 3 4 5 3 5 6 7 上面的文件中有3个多边形面片,第一个面片有3个顶点,其排列顺序为0、1、2;第二个多边形面片为三角面片,其排放顺序为3、4、5;第三个多边形面片为三角面片,顶点分别为2、5、6、7。
定义了一个盒子,其对角顶点为(x_min, y_min, z_min)和(x_max, y_max, z_max); 显示多个盒子可以通过建立多个map、多个actor,每个盒子对应一个map与actor,最后将所有actor都作为同一个renderer的输入即可显示多个盒子。从文件读入盒子数据并加入到渲染环境
点云数据的显示通过vtkUnstructuredGrid类实现,首先将点云数据读入到vtkPoints对象points,建立 vtkPolyVertex对象polyvertex同时设定其中的点Id信息。建立vtkUnstructuredGrid对象grid,设定grid 对象的点表为points,设定数据单元为polyvertex中的数据。然后将grid设定为vtkDataSetMapper对象的输入,通过 vtkActor对象表达,并将点云对象在渲染窗口中渲染显示出来。
对于线段的显示与点云的显示类似,可以“收集”到vtkUnstructGrid类,然后加入到vtkDataSetMapper对象中进行显示
(转)(梦里伊人博客一段话)VTK作为一个显示对象的工具,其工作原理就像是一部电影的产生过程。 要理解VTK的工作原理,首先应明确几个类型:1、vtkMapper(映射器) 所有的数据对象(欲显示的内容)都要通过映射器Mapper映射到vtkActor中的,它就像是一个剧本;2、vtkActor(演员);3、 vtkRenderer(渲染器) 通过渲染器设置窗口vtkRenderWindow的背景并处理演员,这个过程就相当于对演员进行化妆并布置场景;4、 vtkRenderWindow(窗口) 将渲染的所有内容置于窗口vtkRenderWindow中,即电影开拍;5、vtkRenderWindowInteractor(窗口交互器) 通过窗口交互vtkRenderWindowInteractor显示欲显示的内容,即相当于电影放映。