(五)使用VTK 可视化
一、 什么是VTK
VTK(Visualization Toolkit) 是一个开源的、跨平台的计算机图形学、图像处理和可视化的软件库。它广泛应用于科学计算、数据可视化、医学影像、计算机辅助设计(CAD)、计算流体动力学(CFD)等领域。VTK提供了一整套功能强大的工具,用于3D图形和图像的渲染、处理和分析,支持多种数据类型、渲染技术和几何操作。
二、 使用vtk 显示模型
构造要显示的TopoDS_Shape 对象
STEPControl_Reader reader;
reader.ReadFile("D:\\models\\mod.step");
Standard_Integer NbRoots = reader.NbRootsForTransfer();
cout << "Number of roots in STEP file :" << NbRoots << endl;
Standard_Integer NbTrans = reader.TransferRoots();
cout << "STEP roots transferred :" << NbTrans << endl;
cout << "Number of resulting shapes is :" << reader.NbShapes() << endl;
TopoDS_Shape shap = reader.OneShape();
// 手动创建box TopoDS_Shape
//BRepPrimAPI_MakeBox mbox(1., 2., 3);
//const TopoDS_Shape& shap = mbox.Shape();
// 手动创建Cylinder TopoDS_Shape
//Standard_Real radius = 10.0;
//Standard_Real height = 20.0;
//BRepPrimAPI_MakeCylinder cylinder(radius, height);
//TopoDS_Shape shap = cylinder.Shape();
使用VTK框架可视化
vtkNew<vtkRenderWindow> renwin;
vtkNew<vtkRenderer> ren;
renwin->AddRenderer(ren);
vtkNew<vtkInteractorStyleTrackballCamera> istype;
vtkNew<vtkRenderWindowInteractor> iren;
vtkNew<vtkPolyDataMapper> mapper;
iren->SetRenderWindow(renwin);
iren->SetInteractorStyle(istype);
vtkNew<IVtkTools_ShapeDataSource> occSource;
occSource->SetShape(new IVtkOCC_Shape(shap));
mapper->SetInputConnection(occSource->GetOutputPort());
vtkNew<vtkActor> actor;
actor->SetMapper(mapper);
ren->AddActor(actor);
renwin->Render();
iren->Start();
可视化效果

277

被折叠的 条评论
为什么被折叠?



