c++ - C++ 中顶点/边的 VTK 自定义 ID

标签 c++ vtk

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

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

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

预先感谢您的帮助!

最佳答案

  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。

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

关于c++ - C++ 中顶点/边的 VTK 自定义 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17154237/

相关文章:

c++ - 理解(简单?)C++ 继承

compiler-errors - 与VTK相关的PCL链接器错误

python - vtk boxwidget2的实现

C++ 限制输入的字符数

c++ - 根据 Qt 版本添加条件宏

c++ - 在透明窗口中绘制半透​​明矩形

c++ - 如何在 cpp 项目的 makefile 中添加 dll 的引用()

Python-VTK 3D Spline Regression 通过血管树的 STL 模型

python - 如何用代码更改Mayavi中的字体类型和大小?

python - 蛋白质结构可视化