使用Python bindings表示CGAL,我不知道如何创建六面体,也不知道如何计算与另一个六面体的交点。

我有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生成固态六面体?

最后,在成功构造两个这样的多面体之后,如何计算它们的交点?

最佳答案

您将要创建一个初始的四面体,然后使用split_edge三次,然后将新创建的顶点移动到它们应该位于的位置。然后使用split_facetsplit_edge的另一种组合将六面体“成型”到位。

请参阅Section 25.3.7 of CGAL Documentation以明确了解具有顶点[0,0,0][1,0,0][0,1,0][0,0,1][1,1,0][1,0,1][0,1,1]和,但不会(我相信)会失去一般性。

10-05 22:58