1

CGALのPython バインディングを使用すると、六面体を作成する方法も、別の六面体との交点を計算する方法もわかりません。

六面体の角である 8 つの入力ポイントがあります。

六面体 - 6 つの面と 8 つの角を持つ形状

私のコードはこれを行います:

P = Polyhedron_3()
bottom = P.make_tetrahedron(p[0],p[1],p[2],p[3])
top = P.make_tetrahedron(p[4],p[5],p[6],p[7])
left = P.make_tetrahedron(p[0],p[1],p[5],p[4])
right = P.make_tetrahedron(p[3],p[2],p[6],p[7])
front = P.make_tetrahedron(p[4],p[7],p[3],p[0])
back = P.make_tetrahedron(p[1],p[2],p[6],p[5])

しかし、結果として得られる多面体の点を数えると、24 個あります。各面は隣の面と結合していません。

Python CGAL を使用してソリッド六面体を構築するにはどうすればよいですか?

最後に、このような 2 つの多面体の作成に成功したら、それらの交点をどのように計算すればよいでしょうか?

4

1 に答える 1

1

最初の四面体を作成してから、split_edge3 回使用して、新しく作成した頂点を本来あるべき場所に移動します。split_facet次に、との別の組み合わせを使用しsplit_edgeて、六面体を所定の位置に「成形」します。

CGAL ドキュメンテーションのセクション 25.3.7 を参照して、頂点[0,0,0][1,0,0][0,1,0][0,0,1][1,1,0][1,0,1][0,1,1]およびを持つ特殊なケースの六面体について[1,1,1]、一般性を失うことなく (私は信じています)、これが明示的に詳細に行われていることを確認してください。

于 2010-07-01T06:51:31.090 に答える