实例3:椎体的交互

#include "vtkAutoInit.h" 
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);

#include <vtkConeSource.h>//源数据
#include <vtkPolyDataMapper.h>//数据映射
#include <vtkRenderer.h>//绘制器
#include <vtkRenderWindow.h>//绘制窗口
#include <vtkActor.h>//演员
#include <vtkCamera.h>//照相机
#include <vtkRenderWindowInteractor.h>//加入交互机制类

int main()
{
	//指针创建一个圆锥cone
	vtkConeSource *cone=vtkConeSource::New();
	cone->SetResolution (5);//圆锥的棱边数
	cone->SetHeight(3);//指定高度
	cone->SetRadius(1);//指定半径

	//实例化一个映射器coneMapper
	vtkPolyDataMapper *coneMapper=vtkPolyDataMapper::New();
	coneMapper->SetInputConnection(cone->GetOutputPort());//源数据输出给映射器输入

	//创建一个演员对象coneActor
	vtkActor *coneActor=vtkActor::New();
	coneActor->SetMapper(coneMapper);//为演员指定mapper进行映射
	
	//搭建舞台  实例化对象renderer
	vtkRenderer *renderer=vtkRenderer::New();
	renderer->AddActor(coneActor);//将演员加入场景
	renderer->SetBackground(0.1,0.2,0.4);//设置场景背景颜色是(R,G,B)

	//实例化一个窗口对象renWin
	vtkRenderWindow *renWin=vtkRenderWindow::New();
	renWin->SetSize(400,200);//设置窗口大小宽*高
	renWin->AddRenderer(renderer);//将场景renderer加入renWin窗口中

	//实例化一个交互对象
	vtkRenderWindowInteractor* interactor = vtkRenderWindowInteractor::New();//交互对象加入renWin窗口中
	interactor->SetRenderWindow(renWin);

	renWin->Render();//绘制舞台上的东西
	
	interactor->Initialize();//交互对象初始化
	interactor->Start();//开始交互事件

	//释放内存
	cone->Delete();
	coneActor->Delete();
	coneMapper->Delete();
	renderer->Delete();
	renWin->Delete();
	interactor->Delete();

	return 0;
}

VTK系列3_椎体的显示及交互_数据

按下键盘'p'键进行拾取:

VTK系列3_椎体的显示及交互_vtk_02