c++ - 我可以使用 vtkCellLocator 按行查找相交的单元格吗
问题描述
我有网格,有一条线穿过几个单元格。我想得到所有被线相交的单元格。我有线的起点和终点,我有网格顶点坐标。计算这种条件的最快方法是什么,有什么方法可以使用 vtk 类吗?
解决方案
您可以检查 vtk 类vtkOBBTree
和方法IntersectWithLine
。这是 python,但你知道它是如何工作的
from vedo import dataurl, Mesh, Line, show
m = Mesh(dataurl+'bunny.obj')
l = Line([-0.15,0.1,0], [0.1,0.1,0], c='k', lw=3)
pts_cellids = m.intersectWithLine(l, returnIds=True)
print(pts_cellids)
show(m, l, axes=1)
您应该获得单元格 ID:[3245 1364]
推荐阅读
- python - 将 json 列表标准化为值
- exception - 骆驼春 DSL 永远返还
- r - RI 需要帮助理解我教授的 R 代码来计算准确的置信区间
- google-maps - Google Places API 商店定位器 - 单击搜索结果标题以显示 infoWindow
- c++ - 如何在链表 C++ 的开头插入一个数字?
- javascript - javascript中的导出处理程序问题
- python - 如何从基本操作构建 TensorFlow 循环?
- python - 多个数据库创建和迁移不起作用
- go - 如何验证多个嵌套结构
- reporting-services - 存储 SSRS 报告的格式化文本