对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构建实体六面体?
最后,成功构建了两个这样的多面体,我该如何计算它们的交集?
答案 0 :(得分:1)
您将要创建一个初始四面体,然后使用split_edge
三次并将新创建的顶点移动到它们应该的位置。然后使用split_facet
和split_edge
的另一种组合将六面体“塑造”到位。
请参阅Section 25.3.7 of CGAL Documentation,了解具有顶点[0,0,0]
,[1,0,0]
,[0,1,0]
,[0,0,1]
,{{的特殊情况六面体的详细信息。 1}},[1,1,0]
,[1,0,1]
和[0,1,1]
,没有(我相信)失去一般性。