(五)使用VTK 可视化

(五)使用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();

可视化效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值