2013-02-24 70 views
1

我写了一个代码,它将多个3d点绘制为球体。我想在3D中的每个球体附近添加一些文字,以提及关于每个点的一些信息。但我有VTK:将标签/文本放在3d图中的点附近

vtkSmartPointer<vtkLabeledDataMapper> labelMapper = vtkSmartPointer<vtkLabeledDataMapper>::New(); 
labelMapper->SetInputConnection(vtkpoints->GetOutputPort()); // No GetOutputPort() 
vtkSmartPointer<vtkActor2D> labelActor = vtkSmartPointer<vtkActor2D>::New(); 
labelActor->SetMapper(labelMapper); 
renderer->AddActor(labelActor); 

回答

2

您应该从点构造一个vtkPolyData并将其设置为输入vtkPoints存储点的位置不具有GetOutputPort,我需要在labelMApper(也用于glyph3d做球)标签映射器。

事情是这样的:

vtkNew<vtkPolyData> labelPolyData; 
labelPolyData->SetPoints(labelPoints); 
labelMapper->SetInput(labelPolyData); // Note: If you're using VTK from master (6.x), this is SetInputData(...) 
renderer->AddActor2D(labelActor); 
相关问题