VTK 实例16:手动创建vtkPolyData数据集
1 // This example shows how to manually create vtkPolyData. 2 #include "vtkAutoInit.h" 3 VTK_MODULE_INIT(vtkRenderingOpenGL2); 4 VTK_MODULE_INIT(vtkInteractionStyle); 5 6 #include "vtkActor.h" 7 #include "vtkCamera.h" 8 #include "vtkCellArray.h" //基元数组类 9 #include "vtkFloatArray.h" //浮点型数组类 10 #include "vtkPointData.h" 11 #include "vtkPoints.h" 12 #include "vtkPolyData.h" //多边形数据类型类 13 #include "vtkPolyDataMapper.h" 14 #include "vtkRenderWindoh" 15 #include "vtkRenderWindowInteractor.h" 16 #include "vtkRenderer.h" 17 18 int main() 19 , , , , 23 , , , }; 24 //立方体的六个面(每个面由四个点的标号组成) 25 static vtkIdType pts[6][4]=, , , 26 , , }; 27 28 // We'll create the building blocks of polydata including data attributes. 29 //实例化一个多边形数据对象cube 30 vtkPolyData *cube = vtkPolyData::New(); 31 //实例化一个点对象points 32 vtkPoints *points = vtkPoints::New(); 33 //单元对象 34 vtkCellArray *polys = vtkCellArray::New(); 35 //浮点数组对象 36 vtkFloatArray *scalars = vtkFloatArray::New(); 37 38 // Load the point, cell, and data attributes. 39 for (i=0; i<8; i++) points>InsertPoint(i,x[i]);//加载立方体的8个顶点 40 for (i=0; i<6; i++) polys>InsertNextCell(4,pts[i]);//加载每个面由4个点组成的六个面 41 for (i=0; i<8; i++) scalars>InsertTuple1(i,i);//绑定标量数据 42 43 // We now assign the pieces to the vtkPolyData. 44 //与vtkPolyData型数据对象进行关联 45 cube>SetPoints(points);//进行点关联 46 points>Delete(); 47 cube>SetPolys(polys);//进行面关联 48 polys>Delete(); 49 cube>GetPointData()>SetScalars(scalars);//进行元组绑定 50 scalars>Delete(); 51 52 // Now we'll look at it. 53 //多边形数据送入图像界面进行绘制 54 55 vtkPolyDataMapper *cubeMapper = vtkPolyDataMapper::New(); 56 cubeMapper>SetInputData(cube);//vtkPolyData数据输出给映射器输入 57 cubeMapper>SetScalarRange(0,7);//设置标量数据范围0~7 58 59 //实例化一个演员cubeActor 60 vtkActor *cubeActor = vtkActor::New(); 61 cubeActor>SetMapper(cubeMapper); 62 vtkCamera* camera = vtkCamera::New(); 64 camera>SetPosition(1, 1, 1);//设置相机位置为(1,1,1) 65 camera>SetFocalPoint(0, 0, 0); 66 67 vtkRenderer* renderer = vtkRenderer::New(); 68 renderer>AddActor(cubeActor); 69 renderer>SetActiveCamera(camera); 70 renderer>ResetCamera(); 71 renderer>SetBackground(1, 1, 1); 72 73 vtkRenderWindow *renWin = vtkRenderWindow::New(); 74 renWin>AddRenderer(renderer); 75 renWin>SetSize(300, 300); 76 77 vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New(); 78 iren>SetRenderWindow(renWin); 79 80 // interact with data 81 renWin>Render();//绘制舞台上的东西 82 iren>Start();//开始交互 83 84 // Clean up 85 cube>Delete(); 86 cubeMapper>Delete(); 87 cubeActor>Delete(); 88 camera>Delete(); 89 renderer>Delete(); 90 renWin>Delete(); 91 iren>Delete(); 92 93 return 0; 94 }
上一篇:VTK 实例15:图像数据测量
下一篇:VTK 实例17:手动创建vtkImageData数据集
VTK
pla文件怎么看,pla文件用什么打开?
pl1文件怎么看,pl1文件用什么打开?
pl文件怎么看,pl文件用什么打开?
pl0文件怎么看,pl0文件用什么打开?
pkt文件怎么看,pkt文件用什么打开?
pkm文件怎么看,pkm文件用什么打开?
pks文件怎么看,pks文件用什么打开?
pka文件怎么看,pka文件用什么打开?
pkh文件怎么看,pkh文件用什么打开?
pkg文件怎么看,pkg文件用什么打开?