具有多个圆的近似多边形

Posted

技术标签:

【中文标题】具有多个圆的近似多边形【英文标题】:Approximate polygon with multiple circles 【发布时间】:2020-02-01 20:58:12 【问题描述】:

背景:我需要制作针对多边形区域的 Google Ads 广告系列。我收到了这个区域(实际上是一个人们可以通过交通工具(例如:汽车)快速进入的区域,这是我们正在为其进行宣传的设施)。 Google 广告不再支持定位多边形区域,我们实际上只能定位一组圆圈。

所以我考虑用圆来近似多边形(在我的理解中,这将是这个多边形的“内切”或“内接”圆)。

一个快速但不完美的例子,一个算法将尽可能多地覆盖多边形(绿色区域),并可能有一个参数来控制这样做的最大圆数

我只找到了关于用一个圆来近似一个非常接近一个圆的多边形的信息,我需要多个。

是否有任何理论算法/它的任何实现、任何软件包或我是否误解了我必须解决关于 Google Ads 地理定位的挑战的想法?

【问题讨论】:

【参考方案1】:

我找到的唯一解决方案(我花了 2 天时间才完全实现)是用 turfjs 在我的多边形周围创建一个边界框,然后创建一个正方形网格 (turf.squareGrid),然后将其变成一个满为 0 的矩阵或有关正方形的信息。然后一个递归函数在这个矩阵中找到最大的正方形,然后是下一个,以此类推,直到所有的正方形都变成相等或更大的正方形。然后我围绕这些更大的正方形画了圈(半径等于sqrt(2) (~1.41) * (perimeterOfABigSquare / 2)

【讨论】:

以上是关于具有多个圆的近似多边形的主要内容,如果未能解决你的问题,请参考以下文章

圆周率近似值的计算方法都有哪些啊

计几算法补充

为多边形轮廓绘制圆的最有效方法

一种求凸多边形内部似最大圆的算法

opencv 多边形近似物体形状 cv.approxPolyDP函数的应用

将圆连接成多边形的算法