我想知道如何获得位置为阈值的点的ID列表。例如,我需要一个x坐标小于1的点列表。
idlist = []
ncells = UnstructuredGrid.GetNumberOfCells()
for idx in xrange(ncells):
p = UnstructuredGrid.GetPoint(idx)
#Check if x less them 1
if p[0] < 1:
idlist.append(idx)
我正在寻找一种更有效,更智能的方式。可能有一种使用vtkUnstructuredGridFilter或vtkThresholdPoints的方法。
答案 0 :(得分:0)
假设没有更简单的方法来迭代这个UnstructuredGrid,你可以编写一个生成器来使这种函数更加优雅。
def generate_grid():
for id in xrange(UnstructuredGrid.GetNumberOfCells())
yield UnstructuredGrid.GetPoint(idx)
然后你可以在列表理解中使用它,例如
idlist = [point[0] for point in generate_grid() if point[0] < 1]
或过滤器:
idlist = filter(lambda point: point[0] < 1, generate_grid())