vtk中长度测量和角度测量 转载

注意:使用QVTKWidget时不要使用vtkSmartPointer

长度测量:

demo:https://lorensen.github.io/VTKExamples/site/Cxx/Widgets/DistanceWidget/

  vtkSmartPointer<vtkDistanceWidget> distanceWidget =
    vtkSmartPointer<vtkDistanceWidget>::New();
  distanceWidget->SetInteractor(renderWindowInteractor);
  distanceWidget->CreateDefaultRepresentation();
  static_cast<vtkDistanceRepresentation *>(distanceWidget->GetRepresentation())
    ->SetLabelFormat("%-#6.3g mm");

  // Render an image (lights and cameras are created automatically)
  renderWindow->Render();

  renderWindowInteractor->Initialize();
  renderWindow->Render();
  distanceWidget->On();
1
2
3
4
5
6
7
8
9
10
11
12
13
角度测量:

demo1:https://lorensen.github.io/VTKExamples/site/Cxx/Widgets/AngleWidget/
demo2:https://lorensen.github.io/VTKExamples/site/Cxx/Widgets/AngleWidget2D/

  vtkSmartPointer<vtkAngleWidget> angleWidget = 
    vtkSmartPointer<vtkAngleWidget>::New();
  angleWidget->SetInteractor(renderWindowInteractor);
  angleWidget->CreateDefaultRepresentation();

  // Render
  renderWindow->Render();
  renderWindowInteractor->Initialize();
  renderWindow->Render();
  angleWidget->On();
  renderWindowInteractor->Start();
————————————————
版权声明:本文为CSDN博主「努力减肥的小胖子5」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yuxing55555/article/details/80367247

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用VTK的线性测量工具来测量三维模型长度。以下是一个简单的示例代码,它使用vtkDistanceWidget和vtkDistanceRepresentation来实现线性测量。 ```python import vtk # 读取三维模型 reader = vtk.vtkSTLReader() reader.SetFileName("模型文件路径") reader.Update() # 创建渲染器和RenderWindow renderer = vtk.vtkRenderer() renderWindow = vtk.vtkRenderWindow() renderWindow.AddRenderer(renderer) # 创建交互器和RenderWindowInteractor interactor = vtk.vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) # 添加三维模型到渲染器 mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(reader.GetOutputPort()) actor = vtk.vtkActor() actor.SetMapper(mapper) renderer.AddActor(actor) # 创建线性测量工具 widget = vtk.vtkDistanceWidget() widget.SetInteractor(interactor) widget.CreateDefaultRepresentation() rep = widget.GetRepresentation() rep.SetLabelFormat("%-0.3f mm") rep.SetHandleSize(0.01) # 设置测量起点和终点的属性 rep.GetPoint1Representation().SetPointPlacer(None) rep.GetPoint2Representation().SetPointPlacer(None) rep.GetPoint1Representation().SetPickable(1) rep.GetPoint2Representation().SetPickable(1) # 启动交互器 interactor.Initialize() renderWindow.Render() widget.On() interactor.Start() ``` 在这个示例代码,您需要将“模型文件路径”替换为您的三维模型文件的路径。运行代码后,您可以使用鼠标在三维模型上选择起点和终点,然后线性测量工具将显示测量结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值