1

使用CGAL的Python 绑定,我无法弄清楚如何创建一个六面体,也无法计算出它与另一个六面体的交集。

我有 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 构建实心六面体?

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

4

1 回答 1

1

您将要创建一个初始四面体,然后使用split_edge3 次并将新创建的顶点移动到它们应该在的位置。然后使用 和 的另一种组合split_facetsplit_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 回答