python - 如何在 VTK 中选择特定的单元格元素
问题描述
对于我正在编写的程序,我希望能够选择 3 维对象的特定面。我可以使用 python 包装器渲染 3D 非结构化数据。为了让事情更简单,假设我有一个像这样的非结构化数据
# vtk DataFile Version 2.0
tiny, Created by Gmsh
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 4 double
0 0 0
1.0 0 0
0 1.0 0
0 0 2.0
CELLS 4 16
3 0 1 2
3 0 1 3
3 0 2 3
3 1 2 3
CELL_TYPES 4
5
5
5
5
我想以交互方式选择这个 3D 对象的一个或多个面,并获取面和面坐标。请注意,3D 对象将被旋转、移动。我不是在谈论获取鼠标点击的坐标。可以这么说,我有兴趣获得面部的“原始”坐标或“点 ID”。我正在使用 python vtk 包装器。尽管有一个关于拾取和修改属性(如颜色)的示例,但我找不到任何关于如何提取 3D 对象的拾取面(面 ID/点 ID)的指针。
任何指针都会有所帮助。谢谢。
解决方案
您正在寻找的是vtkCellPicker
类,尤其是
vtkIdType GetCellId()
.
文档:https ://vtk.org/doc/nightly/html/classvtkCellPicker.html
用法见这个例子:https ://lorensen.github.io/VTKExamples/site/Cxx/Picking/CellPicking/
推荐阅读
- java - 使用 Gradle 捆绑 java/处理应用程序
- java - 试图将类中的整数对象转换为字符串
- asp.net-web-api - 从 Angular 8 传递的 Http 标头未出现在 ASP.NET Core API 3.1 的 HttpContext 中
- python-3.x - 使用 matlab.engine 运行 python 脚本,无需安装 MATLAB
- react-native - 如何获取 json 并在 flatlist 中显示 img(React Native)
- ios - typeMismatch(Swift.DecodingError.Context(codingPath: [], debugDescription: "期望解码字典
但找到了一个数组。”)) - sql - 从两个表中创建表,它们之间没有链接
- matlab - 具有 Matlab fitcsvm 的一类和一个特征的 SVM 给出了过度拟合的结果
- jquery - jquery_jeditable:控制来自先例输入的最大数量
- javascript - 在 Vue 应用程序中,Key Up 事件在输入元素上触发。为什么?