【问题标题】:How can I Filter overlapping circle?如何过滤重叠圆圈?
【发布时间】:2022-01-09 18:43:59
【问题描述】:

我想只留下第二张图片中被红色包围的部分。

我想留下所有与其他颜色重叠的圆圈,并擦除不重叠或与相同颜色重叠的圆圈。既然有这么多的实际数据,我想写一个高效的代码。

我能做什么?

【问题讨论】:

    标签: geometry visualization distance preprocessor


    【解决方案1】:

    似乎每个圆的半径都是一个常数R。 (如果不是,请按以下逻辑排列。)

    按如下方式组织数据。

    列出所有颜色。

    制作一个字典,键是上面列表中的颜色,特定color的值是该颜色的圆心列表。

    创建一个空列表L,最后它将包含所有需要的圈子。

    我们现在将在颜色之间循环。让color0成为这样的颜色。

    让(x0, y0) 成为这个颜色的圆的中心。所以我们在它们之间循环。如果对应的圆圈已经在L,一切都很好,如果有的话,继续到这个颜色的下一个中心。否则检查该中心是否存在,是否应添加到列表中...

    对于每个其他颜色color1,以及对于其他颜色的每个中心(x1, y1),比较中心(x0, y0)和(x1, y1)之间的距离与公共半径R,如果它小于将两个中心添加到列表L 并转到下一个点(x0, y0)。 (如果不是还在搜索...)

    在此搜索之后,列表L 包含所需的中心。 (当然,根据需要添加记录所有数据的列表对象可能会更好,例如颜色、中心等。)

    【讨论】:

      猜你喜欢
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 2016-07-16
      • 2013-10-29
      • 2012-07-05
      • 1970-01-01
      相关资源
      最近更新 更多