Skip to content

VTKAngleWidget在Windows11VS中创建夹角测量控件教程


开发环境:


demo解决问题:renderWindow中创建一个夹角测量控件,通过三个点确定一个夹角

  • 典型的控件类继承关系:vtkObject > vtkInteractorObsever > vtkAbstractWidget > vtkAngleWidget
  • 交互对象设置:angleWidget->SetInteractor(renderWindowInteractor);
  • 控件使能:renderWindowInteractor->Start();之前angleWidget->On();
  • vtkRenderWindow 与vtkRenderWindowInteractor详解


prj name: AngleWidget

cpp
# include <vtkAngleWidget.h>
# include <vtkNamedColors.h>
# include <vtkNew.h>
# include <vtkRenderWindow.h>
# include <vtkRenderWindowInteractor.h>
# include <vtkRenderer.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;
}

基于 VitePress 强力驱动 | 记录技术与生活