gpt4 book ai didi

python - 使用 CGAL 创建六面体并使其相交

转载 作者:太空宇宙 更新时间:2023-11-03 19:36:52 26 4
gpt4 key购买 nike

使用Python bindings对于 CGAL ,我不知道如何创建一个六面体,也不知道如何计算它与另一个六面体的交集。

我有8个输入点,它们是六面体的角:

a hexahedron - a shape with six faces, eight corners

我的代码执行此操作:

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][1,1,1],(我相信)没有任何通用性损失。

关于python - 使用 CGAL 创建六面体并使其相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3154269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com