1

我编写了一个将多个 3d 点绘制为球体的代码。我想在 3D 中的每个球体附近添加一些文本,以提及有关每个点的一些信息。但是我有 vtkPoints 来存储点位置,这些位置没有我在 labelMApper 中需要的 GetOutputPort (并且还使用 glyph3d 来制作球体)

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

1 回答 1

2

您应该从这些点构造一个 vtkPolyData 并将其设置为标签映射器的输入。

像这样的东西:

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);
于 2013-03-06T09:01:16.037 回答