VTK 实例3:椎体的交互

发布时间 2023-08-14 15:05:47作者: 一杯清酒邀明月
 1 #include "vtkAutoInit.h" 
 2 VTK_MODULE_INIT(vtkRenderingOpenGL2);
 3 VTK_MODULE_INIT(vtkInteractionStyle);
 4 
 5 #include <vtkConeSource.h>//源数据
 6 #include <vtkPolyDataMapper.h>//数据映射
 7 #include <vtkRenderer.h>//绘制器
 8 #include <vtkRenderWindow.h>//绘制窗口
 9 #include <vtkActor.h>//演员
10 #include <vtkCamera.h>//照相机
11 #include <vtkRenderWindowInteractor.h>//加入交互机制类
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     //实例化一个映射器coneMapper
22     vtkPolyDataMapper *coneMapper=vtkPolyDataMapper::New();
23     coneMapper->SetInputConnection(cone->GetOutputPort());//源数据输出给映射器输入
24 
25     //创建一个演员对象coneActor
26     vtkActor *coneActor=vtkActor::New();
27     coneActor->SetMapper(coneMapper);//为演员指定mapper进行映射
28     
29     //搭建舞台  实例化对象renderer
30     vtkRenderer *renderer=vtkRenderer::New();
31     renderer->AddActor(coneActor);//将演员加入场景
32     renderer->SetBackground(0.1,0.2,0.4);//设置场景背景颜色是(R,G,B)
33 
34     //实例化一个窗口对象renWin
35     vtkRenderWindow *renWin=vtkRenderWindow::New();
36     renWin->SetSize(400,200);//设置窗口大小宽*高
37     renWin->AddRenderer(renderer);//将场景renderer加入renWin窗口中
38 
39     //实例化一个交互对象
40     vtkRenderWindowInteractor* interactor = vtkRenderWindowInteractor::New();//交互对象加入renWin窗口中
41     interactor->SetRenderWindow(renWin);
42 
43     renWin->Render();//绘制舞台上的东西
44     
45     interactor->Initialize();//交互对象初始化
46     interactor->Start();//开始交互事件
47 
48     //释放内存
49     cone->Delete();
50     coneActor->Delete();
51     coneMapper->Delete();
52     renderer->Delete();
53     renWin->Delete();
54     interactor->Delete();
55 
56     return 0;
57 }