首页 > 解决方案 > 我可以使用 vtkCellLocator 按行查找相交的单元格吗

问题描述

我有网格,有一条线穿过几个单元格。我想得到所有被线相交的单元格。我有线的起点和终点,我有网格顶点坐标。计算这种条件的最快方法是什么,有什么方法可以使用 vtk 类吗?

标签: c++computational-geometrymeshvtkraytracing

解决方案


您可以检查 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]


推荐阅读