【发布时间】:2013-02-08 10:04:24
【问题描述】:
一个很简单的问题: 如何在 Python(或 Cython)中有效地计算以下数量。
给定 3D 多边形列表(多边形
下面的形式给出了一个多边形列表:
vertex = np.array([[0, 0, 0], [0, 0, 1], [0, 1, 0],[1, 0, 0],[0.5, 0.5, 0.5]], order = 'F').T
polygons = np.array([3, 0, 1, 2, 4, 1, 2, 3 ,4])
即多边形是一维数组,其中包含 [N,i1,i2,i3,i4,...] 形式的条目, N 是多边形中的顶点数,然后是顶点数组中顶点的 id 号(在上面的示例中,一个三角形有 3 个顶点 [0,1,2],一个多边形有 4 个顶点 [1,2] ,3,4]
我需要计算信息:所有边的列表和每条边的信息 哪些面包含这条边。
而且我需要快速完成:顶点的数量可能很大。
更新
多边形是闭合的,即多边形[4, 0, 1, 5, 7]表示有4个顶点,边是0-1, 1-5, 5-7, 7-0
事实上,脸是多边形的同义词。
【问题讨论】:
-
你能定义你的案例中的边和面吗?