//vtkSmartPointer<vtkAngleWidget> angleWidget = vtkSmartPointer<vtkAngleWidget>::New();
vtkAngleWidget* angleWidget = vtkAngleWidget::New();
angleWidget->SetInteractor(this->GetRenderWindowInteractor());
vtkSmartPointer<vtkAngleRepresentation2D> angleRep =
vtkSmartPointer<vtkAngleRepresentation2D>::New();
//angleWidget->CreateDefaultRepresentation();
angleRep->GetRay1()->GetProperty()->SetColor(0, 1, 0);
angleRep->GetRay1()->GetProperty()->SetLineWidth(1);
angleRep->GetRay2()->GetProperty()->SetColor(0, 1, 0);
angleRep->GetRay2()->GetProperty()->SetLineWidth(1);
angleRep->GetArc()->GetProperty()->SetColor(0, 1, 0);
angleRep->GetArc()->GetProperty()->SetLineWidth(1);
angleWidget->SetRepresentation(angleRep);
angleWidget->SetWidgetStateToManipulate();
angleRep->GetPoint1Representation()->SetWorldPosition(p1);
angleRep->GetPoint2Representation()->SetWorldPosition(p3);
angleRep->GetCenterRepresentation()->SetWorldPosition(p2);
angleWidget->On();
this->GetRenderWindow()->Render();
获取vtkAngleWidget对象的相关数据。可以通过vtkAngleRepresentation类来获取。
比如获取vtkAngleWidget的角度的三个点,getAngleRepresentation()->GetPoint1Representation();另外两个点同理可得。查看类vtkAnglePresentation可以看到里面有很多种方法。LabelFormat设置文本的样式–暂时未处理