使用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_facet
和split_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]
和,但不会(我相信)会失去一般性。