VTK 测量类Widget的应用 与 vtkDistanceWidget 3D测试 问题

  • vtkDistanceWidget:用于在二维平面上测量两点之间的距离。
  • vtkAngleWidget:用于在平面的角度测量。

AngleWidget

感觉这都是 2D控件

 

#include <vtkActor.h>
#include <vtkAngleWidget.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyData.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkSphereSource.h>

int main(int, char*[])
{
  vtkNew<vtkNamedColors> colors;

  // A renderer and render window
  vtkNew<vtkRenderer> renderer;
  vtkNew<vtkRenderWindow> renderWindow;
  renderWindow->AddRenderer(renderer);
  renderWindow->SetWindowName("AngleWidget");

  // An interactor
  vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
  renderWindowInteractor->SetRenderWindow(renderWindow);

  vtkNew<vtkAngleWidget> angleWidget;
  angleWidget->SetInteractor(renderWindowInteractor);
  angleWidget->CreateDefaultRepresentation();

  // Render
  renderer->SetBackground(colors->GetColor3d("MidnightBlue").GetData());
  renderWindow->Render();
  renderWindowInteractor->Initialize();
  renderWindow->Render();
  angleWidget->On();
  renderWindowInteractor->Start();

  return EXIT_SUCCESS;
}

 vtkDistanceWidget

vtkDistanceWidget 3D测试 不能真正的落在 3D模型上,这个问题挺意外;感觉可以修改源码,但时间有限,暂时没有空看;

这个是vtkDistanceWidget

vDistanceWidget

明显可以看到它的点不能落到 模型上;理论上这个修改源码可以实现;

Code:

vtkDistanceWidget* distanceWidget = vtkDistanceWidget::New();
distanceWidget->SetInteractor(m_renderWindows[i]->GetInteractor());
vtkDistanceRepresentation3D* representation = vtkDistanceRepresentation3D::New();
distanceWidget->SetRepresentation(representation);
distanceWidget->SetPriority(0.9);
static_cast<vtkDistanceRepresentation*> (distanceWidget->GetRepresentation())->SetLabelFormat("%-#6.3g px");
distanceWidget->ManagesCursorOn();
distanceWidget->On();

使用 vtkLineWidget 实现

vtkDistanceWidget vtkLineWidge

这个自己判断 了一下,点击的点能不能落到模型上,如果没有落到不处理;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋恋西风

up up up

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值