VTK 实例2:显示椎体及旋转
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
12 int main()
13 {
14 //指针创建一个圆锥cone
15 vtkConeSource *cone=vtkConeSource::New();
16 cone->SetResolution (10);//圆锥的棱边数
17 cone->SetHeight(3);//指定高度
18 cone->SetRadius(1);//指定半径
19
20 //实例化一个映射器coneMapper
21 vtkPolyDataMapper *coneMapper=vtkPolyDataMapper::New();
22 coneMapper->SetInputConnection(cone->GetOutputPort());//源数据输出给映射器输入
23
24 //创建一个演员对象coneActor
25 vtkActor *coneActor=vtkActor::New();
26 coneActor->SetMapper(coneMapper);//为演员指定mapper进行映射
27
28 //搭建舞台 实例化对象renderer
29 vtkRenderer *renderer=vtkRenderer::New();
30 renderer->AddActor(coneActor);//将演员加入场景
31 renderer->SetBackground(0.2,0.2,0.4);//设置场景背景颜色是(R,G,B)
32
33 //实例化一个窗口对象renWin
34 vtkRenderWindow *renWin=vtkRenderWindow::New();
35 renWin->SetSize(400,200);//设置窗口大小宽*高
36 renWin->AddRenderer(renderer);//将场景renderer加入renWin窗口中
37
38 //旋转5圈
39 for (int i=0; i<360*5; i++)
40 {
41 //绘制舞台上的东西
42 renWin->Render();
43 //让场景中照相机旋转1度
44 renderer->GetActiveCamera()->Azimuth(1);
45 }
46
47 //释放内存
48 cone->Delete();
49 coneActor->Delete();
50 coneMapper->Delete();
51 renderer->Delete();
52 renWin->Delete();
53
54 return 0;
55 }