【问题标题】:VTK custom IDs for vertices/edges in C++C++ 中顶点/边的 VTK 自定义 ID
【发布时间】:2013-06-20 19:08:14
【问题描述】:

请原谅我,因为我在 VTK C++ 方面还比较陌生,但我开始掌握它,但我想我只是不确定从这里去哪里。

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

所以我想我的主要问题是:
- 我可以为以后可以参考的每个顶点创建自定义 ID 吗?
- 我也可以使用边缘来执行此操作吗?
- 我该怎么做?

提前感谢您的帮助!

【问题讨论】:

    标签: c++ vtk


    【解决方案1】:
    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。

    我还没有测试过这些解决方案。我希望它会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多