使用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]
和 [1,1,1]
,(我相信)没有任何通用性损失。
我是一名优秀的程序员,十分优秀!