1

请原谅我,因为我在 VTKC++ 方面相当新,但我开始掌握它,但我想我只是不确定从这里去哪里。

我正在制作一个图表,当您选择顶点和边时,它会显示哪些被选中(我使用教程作为起点)。它做得很好,除了不使用我给每个顶点的标签,它只使用创建它的顺序(或者说默认值)。我做了一些研究,发现您可以将谱系 ID 数组用于顶点(我不知道边,但我一次迈出一步),这将充当自定义 ID,但我想不出出如何实现这一点。

所以我想我的主要问题是:
- 我可以为每个顶点制作自定义 ID,以便稍后参考吗?
- 我也可以用边缘来做这个吗?
- 我该怎么办?

在此先感谢您的帮助!

4

1 回答 1

0
  1. 查看 vtk 文档,vtkGraph类有 2 个方法GetVertexData ()GetEdgeData ()返回vtkDataSetAttributes. 此类允许将vtkAbstractArray(vtkIdType 数组、字符串数组...等)设置为 PedigreeIds。您可以填充从图表中获得的这个数组,并将您的谱系 id 设置在所需顶点的相同位置以“标记”顶点(或边)。

  2. 其他解决方案是创建一个关联数组,例如std::map<vtkIdType, vtkIdType>以您的 Id 作为键,并将顶点 Id 作为值关联。它将允许您从您选择的 ID 中获取图表中的“真实”ID。

  3. 您可以更改一个顶点的 ID,但您必须使用它检查其他边,以更改参考并设置您选择的新 ID,查找和修改与修改后的 ID 链接的每个顶点/边可能会很昂贵。

  4. 您可以使用与顶点关联的类为表示设置一些标签vtkGraphLayoutView,但它不是 Graph 实例的内部,而是用于渲染。它不应该用于“重新标记”ID。

我还没有测试过这些解决方案中的任何一个。我希望它会有所帮助。

于 2013-06-20T11:08:14.337 回答