1 #include "vtkAutoInit.h" 2 VTK_MODULE_INIT(vtkRenderingOpenGL2); 3 VTK_MODULE_INIT(vtkInteractionStyle); 4 #include <vtkConeSource.h>//源数据 5 #include <vtkCubeSource.h>//立方体 6 #include <vtkPolyDataMapper.h>//数据映射 7 #include <vtkRenderer.h>//绘制器 8 #include <vtkRenderWindow.h>//绘制窗口 9 #include <vtkCamera.h>//照相机 10 #include <vtkRenderWindowInteractor.h>//加入交互机制类 11 12 13 int main() 14 { 15 //指针创建一个锥体cone 16 vtkConeSource* cone = vtkConeSource::New(); 17 cone->SetResolution(5);//圆锥的棱边数 18 cone->SetHeight(3);//指定高度 19 cone->SetRadius(1);//指定半径 20 21 //指针创建一个柱体 22 vtkCubeSource* cube = vtkCubeSource::New(); 23 24 //实例化一个映射器coneMapper 25 vtkPolyDataMapper* coneMapper = vtkPolyDataMapper::New(); 26 coneMapper->SetInputConnection(cone->GetOutputPort());//源数据输出给映射器输入 27 28 //实例化一个映射器cubeMapper 29 vtkPolyDataMapper* cubeMapper = vtkPolyDataMapper::New(); 30 cubeMapper->SetInputConnection(cube->GetOutputPort());//源数据输出给映射器输入 31 32 //创建一个演员对象coneActor 33 vtkActor* coneActor = vtkActor::New(); 34 coneActor->SetMapper(coneMapper);//为演员指定mapper进行映射 35 36 //创建一个演员对象cubeActor 37 vtkActor* cubeActor = vtkActor::New(); 38 cubeActor->SetMapper(cubeMapper);//为演员指定mapper进行映射 39 40 //搭建舞台 实例化渲染器对象renderer 41 vtkRenderer* renderer = vtkRenderer::New(); 42 renderer->AddActor(coneActor);//将演员加入场景 43 renderer->SetBackground(1.0, 0.0, 0.0);//设置场景背景颜色为红色(R,G,B) 44 //在绘制窗口指定视口(Xmin,Ymin,Xmax,Ymax)(x,y范围都为0~1) 45 renderer->SetViewport(0.0, 0.0, 0.5, 0.5);//视口1 46 47 //搭建舞台 实例化渲染器对象renderer2 48 vtkRenderer* renderer2 = vtkRenderer::New(); 49 renderer2->AddActor(cubeActor);//将演员加入场景 50 renderer2->SetBackground(0.0, 1.0, 0.0);//设置场景背景颜色为绿色(R,G,B) 51 renderer2->SetViewport(0.5, 0.0, 1.0, 0.5);//视口2 52 53 vtkRenderer* renderer3 = vtkRenderer::New(); 54 renderer3->AddActor(cubeActor); 55 renderer3->SetBackground(0.0, 0.0, 1.0);//蓝色 56 renderer3->SetViewport(0.0, 0.5, 0.5, 1.0);//视口3 57 58 vtkRenderer* renderer4 = vtkRenderer::New(); 59 renderer4->AddActor(coneActor); 60 renderer4->SetBackground(1.0, 1.0, 0.0);//黄色 61 renderer4->SetViewport(0.5, 0.5, 1.0, 1.0);//视口4 62 63 //实例化一个窗口对象renWin 64 vtkRenderWindow* renWin = vtkRenderWindow::New(); 65 renWin->SetSize(640, 480);//设置窗口大小宽*高 66 renWin->AddRenderer(renderer);//将场景renderer加入renWin窗口中 67 renWin->AddRenderer(renderer2);//将场景renderer2加入renWin窗口中 68 renWin->AddRenderer(renderer3); 69 renWin->AddRenderer(renderer4); 70 71 //实例化一个交互对象 72 vtkRenderWindowInteractor* interactor = vtkRenderWindowInteractor::New();//交互对象加入renWin窗口中 73 interactor->SetRenderWindow(renWin); 74 75 renWin->Render();//绘制舞台上的东西 76 77 interactor->Initialize();//交互对象初始化 78 interactor->Start();//开始交互事件 79 80 cone->Delete(); 81 cube->Delete(); 82 coneActor->Delete(); 83 cubeActor->Delete(); 84 coneMapper->Delete(); 85 cubeMapper->Delete(); 86 renderer->Delete(); 87 renderer2->Delete(); 88 renderer3->Delete(); 89 renderer4->Delete(); 90 renWin->Delete(); 91 interactor->Delete(); 92 93 return 0; 94 }
标签:10,1.0,0.0,VTK,实例,renWin,vtkRenderer,New,Delete From: https://www.cnblogs.com/ybqjymy/p/17628693.html