VTK生成一个圆柱
#include <>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
#include <> //智能指针
#include <> //vtk 规范渲染器
#include <> //创建渲染窗口用于画图
#include <> //渲染窗口交互器
#include <> //vtk 交互方式(interactor style) 对于相机的交互操作
#include <> //vtkPolyDataAlgorithm //生成一个以原点为中心的圆柱体
#include <> //用于渲染多边形几何数据(vtkPolyData ) 派生自vtkMapper
#include <> //渲染场景中的可视化
int _tmain(int argc, _TCHAR* argv[])
{
// 1 、创建圆柱实体
vtkSmartPointer<vtkCylinderSource> cylinder = vtkSmartPointer<vtkCylinderSource>::New();
cylinder->SetRadius(1);
cylinder->SetHeight(3);
cylinder->SetResolution(10);
//2 、创建Mapper 渲染多边形几何数据(vtkPolyData) //渲染多边形几何数据,将输入的数据转换为几何图元(点、线、多边形)进行渲染。
vtkSmartPointer<vtkPolyDataMapper> cylinderMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
//cylinderMapper->SetInputData(cylinder);
cylinderMapper->SetInputConnection(cylinder->GetOutputPort()); // vtkAlogrithm*
//3、创建Actor 渲染场景中的可视化
vtkSmartPointer<vtkActor> cylinderActor = vtkSmartPointer<vtkActor> ::New();
cylinderActor->SetMapper(cylinderMapper);
//4、创建vtkRenderer规范渲染器 //负责管理场景的渲染过程
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(cylinderActor);
renderer->SetBackground(0.1, 0.2, 0.4);
//5、创建vtkRenderWindow 渲染窗口
vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New();
renWin->AddRenderer(renderer);
renWin->SetSize(300, 300);
renWin->SetPosition(300, 300);
//6、创建vtkRenderWindodwInteractor 渲染窗口交互器
vtkSmartPointer<vtkRenderWindowInteractor> iren = vtkSmartPointer<vtkRenderWindowInteractor>::New();
iren->SetRenderWindow(renWin);
//创建vtkInteractorStyleTrackballCamera 相机交互器 //交互方式,控制相机对物体进行旋转、放大、缩小等操作
vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
iren->SetInteractorStyle(style);
iren->Initialize();
iren->Start();
return 0;
}