2013-02-24 66 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); 
相關問題