Geometry 用等半径圆覆盖任意区域
如果一个算法覆盖一个半径相等的圆的任意区域,它将如何工作 圆的半径以及面积的大小和形状是任意给定的。该区域应尽可能少地覆盖圆圈。圆圈可能重叠Geometry 用等半径圆覆盖任意区域,geometry,Geometry,如果一个算法覆盖一个半径相等的圆的任意区域,它将如何工作 圆的半径以及面积的大小和形状是任意给定的。该区域应尽可能少地覆盖圆圈。圆圈可能重叠 是否有一种算法可以处理这个问题?在不了解更多约束条件的情况下,我建议对平面进行规则覆盖,使用与六边形瓷砖的规则六边形对应的圆盘。然后保持所有磁盘与形状相交。希望我正确理解了您的问题 可以证明,使用球体时,球体的六边形紧密堆积(HCP)覆盖了最大体积。因此,我假设使用圆进行HCP也会覆盖使用圆的最大面积。用三角形对区域进行细分,并在三角形的每个顶点放置一个圆
是否有一种算法可以处理这个问题?在不了解更多约束条件的情况下,我建议对平面进行规则覆盖,使用与六边形瓷砖的规则六边形对应的圆盘。然后保持所有磁盘与形状相交。希望我正确理解了您的问题 可以证明,使用球体时,球体的六边形紧密堆积(HCP)覆盖了最大体积。因此,我假设使用圆进行HCP也会覆盖使用圆的最大面积。用三角形对区域进行细分,并在三角形的每个顶点放置一个圆心,半径为三角形边长度的一半。请参阅,以获取我正在谈论的算法的图像 注意:这类似于 编辑:我以前的方法覆盖了尽可能多的区域,没有重叠。如果允许重叠,那么(我相信)以下方法将覆盖整个区域,重叠最小 您可能知道,只有3个二维空间的正多边形细分-使用正方形、三角形或六边形。该策略是使用其中一个多边形进行细分,然后为每个多边形外接一个圆。使用这种方法,六边形将浪费最小面积 因此,根据给定圆的半径,计算所需六边形的大小,使用六边形细分区域,然后在每个六边形上外接一个圆 NB:提出了类似的方法
--Flaviu Cipcigan
我知道这个问题可能有点过时,但最近我遇到了一个类似的问题,即使用六边形网格用相等的圆覆盖地理区域,我就是这样解决的:
我希望这是可以理解的,并且对任何人都有帮助。圆圈不会分割,所以如果没有重叠,就无法完美地完成这项工作。你能澄清你的问题吗?编辑了我的答案,加入了一个覆盖整个领域的方法。:-)“被尽可能少的圆圈覆盖”有多重要?如果使用绝对最小数量的圆并不重要,那么像Eric Bainville这样的技术可以在许多情况下产生良好的效果。圆的大小必须相同吗?圆圈可以重叠形状的边缘吗?圆圈的大小必须相同。它们可能会重叠形状的边缘。这种技术不起作用,因为它没有覆盖整个区域。嗨,我想解决完全相同的问题,尽管我没有完全遵循你的sudo代码。你能为我提供你的实施方案吗?谢谢