【问题标题】:computing 3D reduced convex hull计算 3D 缩减凸包
【发布时间】:2015-06-06 10:13:45
【问题描述】:

我正在寻找一种算法,它可以提供我所说的 3D 中“缩小的凸包”(与“缩小的凸包”不同)。我将缩小的外壳 H' 定义为与某个原始凸包 H 的距离不小于 D 的空间体积。

从分析上讲,这可以通过将 H 的每个平面沿其法线向内移动 D 来形成,然后计算结果平面的凸包(如果存在)。棘手的一点是一些平面可能会被修剪或丢弃,其他平面可能会移过其他平面,并且由于正常反转(如果 D 足够大)而被完全“剪断”。我对如何进行算法有点模糊,但在下面有一些经过深思熟虑的想法。

我这样做是为了识别数据集中的点子集,这些点保证与原始点集表面的距离不小于给定距离(假设为凸点,我有这个)。这是为了消除在我们正在进行的某些计算中干扰信号的表面效应。

我真的在寻找一个名字,或者任何这样做的人的例子,或者其他计算这个的方法。理想情况下,一些旧的开放代码会很棒,但我认为我的问题太小众了。

我发现减少了凸包,但这似乎是一个不同的想法。目前我能找到的最接近的东西是“Hausdorff Cores”——但这似乎是非凸多边形的更复杂的情况,而且非常密集。


除非你真的很想,否则不要在这里阅读。

当前的、不完整/经过深思熟虑的算法

识别缩减点集的慢速方法(即当前方法)是计算所有点的有符号距离,并拒绝那些小于给定距离的点。但是,这非常慢,因为点数可能高达 100M。我认为在原始船体上进行操作以生成缩小的船体,并计算其 AABB 和球形 BB,然后仅保留缩小的船体内部的那些可能会快得多(我希望 - 愿意接受 cmets 说这是愚蠢的)。

我认为这应该是可能的,因为我并不严格需要每个点的完整距离信息,只需要 D_point > D。所以一旦我知道这一点,我应该能够停下来。

我可以看到如何在 2D 中完成缩小的船体,您可以在其中查看每个顶点,然后使用等速 Eikonal 的解析解,然后沿着从每个角派生的向量移动顶点。

但是,3D 版本 afaics 的情况更为复杂,因为每个顶点都有多个面 (>2)。我目前的计划是单独查看每个边缘对,然后从那里开始工作(不知何故 - 创建半空间并将它们合并?)来构建这个船体。

【问题讨论】:

  • 只是为了澄清要求:输入是如何表示的?它只是一组点吗?输出的期望表示形式是什么?它是这些点的子集(生成输入的凸包),还是定义面的多边形列表?
  • 输入是从 qhull 获得的凸包和 3D 点数组。点数组包含在原始外壳中,并且是原始外壳点的超集。 Qhull 提供面遍历和顶点遍历。我可以根据需要构建顶点-边或顶点->面图

标签: algorithm 3d computational-geometry convex-hull


【解决方案1】:

你的想法是缩小 3D 凸包,它的工作原理就像缩小 2D 图像,除了角度如何

算法的轮廓(2D)看起来像这样:

1. Compute the convex hull.
2. For each point, P, in the convex hull:
3.     Find the hull points before and after, P
4.     Bisect the angle formed to obtain the angle, A, required.
5.     Create a new point, P', along the angle A at a distance, D, from `P`.
7.     Add P' to the scaled-down (shrunken) convex hull.

3D 中的唯一区别出现在第 3 行和第 4 行。在 3D 中,第 3 步获得 3 个点。在步骤 4 中,使用 3D 角度。因此,您会发现在图形/几何库中使用 3D 变换有很多好处,因为数学可能很棘手。

【讨论】:

    【解决方案2】:

    如果您的目标是消除表面效应,并且凸包的每个表面都移动 相同的距离并不重要,那么您可以改为

    1. 识别已知位于船体内部的点(例如点云或船体的质心)
    2. 朝该点向内缩放船体

    除非您无限缩放(将所有内容折叠到一个点),否则此操作应提供具有相同连通性的向内位移的船体 - 不添加或删除任何点。

    【讨论】:

      猜你喜欢
      • 2016-06-10
      • 2018-02-28
      • 2021-02-03
      • 2012-02-12
      • 2017-04-21
      • 2017-06-15
      • 2011-11-02
      • 2013-01-18
      • 2012-11-21
      相关资源
      最近更新 更多