【问题标题】:CGAL: How to merge two (coplanar) polyhedron facets with more than one common edge?CGAL:如何将两个(共面)多面体面与多个公共边合并?
【发布时间】:2014-10-07 08:22:40
【问题描述】:

使用 CGAL,使用任何内核,但最好使用 Epeck,我如何安全地合并 Polyhedron_3 的两个共面刻面(任何度数)?两个面都在相同 Polyhedron_3 曲面上,并且已经共享一条或多条边。期望的结果是公共边都被去除,两个面变成一个面,操作后没有天线或未连接的顶点。例如,我想合并下图所示的分面 F1 和 F2,并删除由 HE1、HE2 和 HE3 表示的边。

我想达到与 CGAL 的 join_facet 相同的结果,除了(我相信)join_facet 仅用于连接只有一个共同边的面。如果有更多,join_facet 可能会创建天线,从而导致对多面体的后续操作失败。

计算面是否共面不是问题的一部分,我可以自己处理。

最终目标是合并一个三角形多面体的所有共面面。我假设最好的方法是迭代地合并多面体的接触共面面。因此,我也会接受解释实现预期结果的替代方法的答案。

【问题讨论】:

    标签: cgal


    【解决方案1】:

    如果你的分面有边数,你可以调用函数join_loop

    【讨论】:

    • join_loop 的帮助声明“g 表示的 facet 和沿 facet 的顶点都被删除”。我认为这意味着如果他们接触到这个操作之后会有一个洞。该图还暗示这是用于连接两个未连接的方面。您能否提供一个在这种情况下使用它的小例子?
    • 如果您有两个四面体,其一个面彼此共面,这将允许将其移除,然后多面体将只绑定一个体积。
    • 我现在已经澄清了这个问题,我不想合并不同多面体的两个面,我想像你一样合并 same 多面体的两个面与join_facet 一起使用,除了join_facet 仅用于连接只有一条公共边的刻面。如果有更多,join_facet 可能会创建天线。最终目标是合并一个共面的三角多面体的所有面。
    • No join_facet 工作即使你有 n 条边,它只在一个多面体上工作(在我的例子中,两个四面体在同一个多面体中)
    • 好的(以为四面体是3D形状,所以没有看到两个如何成为多面体表面的一部分,实际上我仍然不完全理解,但没关系)。无论如何,你是说join_facet 将删除事件面,并删除 所有 以前是这些面之间边界的边缘,不留下任何触角?对此的帮助尚不清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 2015-02-09
    • 2013-05-23
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    相关资源
    最近更新 更多