【问题标题】:In CGAL, can one convert a triangulation in more than three dimensions to a polytope?在 CGAL 中,可以将超过三个维度的三角剖分转换为多面体吗?
【发布时间】:2020-12-29 06:33:09
【问题描述】:

如果这个问题在相关网站上更合适,请告诉我,我很乐意移动它。


我在 ℤ11 中有 165 个顶点,它们都在距离原点 √8 处,并且是它们对应的convex hull 上的极值点。 CGAL 能够在我的笔记本电脑上使用不到 1 GB 的 RAM 在 133 分钟内计算出他们的 d-dimensional triangulation


Magma 非常快速地管理类似的 66 顶点情况,而且,对于我的应用程序而言,至关重要的是,它返回一个实际的多面体而不是三角剖分。因此,我可以将每个 d 维的面视为一个可以由任意数量的顶点包围的对象。

此外,虽然对我的应用程序不太重要,但我也可以使用Graph : TorPol -> GrphUnd 计算all the topological information regarding how those faces are connected,然后使用AutomorphismGroup : Grph -> GrpPerm, ... 找到该单元结构的相应自同构群。

不幸的是,当应用于原始多面体时,Magma 的 AutomorphismGroup : TorPol -> GrpMat 仅返回 GLd(ℤ) 的子群,而不是完整的自同构群 G,这是我真正希望计算的。作为一个矩阵群,G ∉ GL11(ℤ),而是 ∈ GL11(????),其中 ?? ??代表algebraic numbers。一般来说,我不需要有理数的完整代数闭包ℚ̅,而只需要一些域扩展。但是,我可以使用 G 的任何非平凡的强大表示。

通过两天的计算,Magma 可以管理 165 个顶点的情况,但只能提供有关多面体原始 165 个顶点、10 个面和体积的信息。但是,尝试枚举 d 面,对于任何 2 ≤ d


另一方面,CGAL 的三角剖分只计算d-simplices 的集合,所有这些集合都有d + 1 个顶点。从这样的三角测量中提取相同的面部信息似乎是可能的,但我还没有想到一种简单的方法来编码。


我在 CGAL 中是否遗漏了一些明显的东西?对于计算多面体人脸信息或找到我的点集的全自同构群的替代方法,您有什么建议吗?

【问题讨论】:

    标签: mesh cgal triangulation finite-group-theory magma-ca


    【解决方案1】:

    您可以在 CGAL 中使用包Combinatorial maps,它能够表示 nD 中的多面体。组合图描述了所有单元格以及单元格之间的所有关联和邻接关系。

    在这个包中,有一个未记录的方法are_cc_isomorphic 允许从两个起点测试是否存在同构。我认为您可以从所有可能的起点对使用此方法来查找所有自同构。

    不幸的是,没有任何方法可以从 dD 三角剖分构建组合地图。这种方法存在于 3D 中(参见this file)。它可以在 dD 中扩展。

    【讨论】:

    • 非常感谢!我会尝试这些技术。我会尽快接受你的回答。
    • 查看了您链接的代码后,我的印象是生成的组合图仍将被三角剖分,而不是转换为多面体(在可能具有超过 的面的意义上d + 1 个顶点)。例如,import_from_triangulation_3 不会给出十二面体的五边形面。还是我错过了什么?
    • 确实 import_from_triangulation_3 创建了一个与输入 3D 三角剖分具有完全相同拓扑的组合图。因此只有三角形面的四面体。但是您现在拥有一个灵活的数据结构,您可以对其进行修改以表示您想要的内容。比如你可以使用对偶的方法来创建对偶组合图,或者使用去除的方法来合并一些相邻的单元格...
    猜你喜欢
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 2016-09-16
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多