非常に単純な質問: 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])
つまり、polygon は [N,i1,i2,i3,i4,...] の形式のエントリを含む 1D 配列です。N は多角形の頂点の数で、頂点配列の頂点の ID 番号です。 (上記の例では、3 つの頂点 [0,1,2] を持つ三角形が 1 つと、4 つの頂点 [1,2,3,4] を持つ多角形が 1 つあります。
情報を計算する必要があります。すべてのエッジのリストと、エッジごとに、このエッジを含む面の情報です。
頂点の数は多くなる可能性があります。
更新
多角形は閉じています。つまり、多角形[4, 0, 1, 5, 7]
は 4 つの頂点とエッジが0-1, 1-5, 5-7, 7-0
あることを意味します。実際、面は多角形と同義です。