VTK生成一个圆柱

时间:2025-03-29 10:43:49
#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; }