为了账号安全,请及时绑定邮箱和手机立即绑定

查找重叠矩形区域的有效算法是什么

查找重叠矩形区域的有效算法是什么

我的情况输入:一组矩形每个rect都由4个double组成,例如:(x0,y0,x1,y1)它们不会以任何角度“旋转”,它们都是相对于屏幕“上/下”和“左/右”的“普通”矩形它们是随机放置的-它们可能在边缘接触,重叠或没有任何接触我将有数百个矩形这是用C#实现的我需要找到由它们的重叠部分形成的区域-画布中一个以上矩形“覆盖”的所有区域(例如,对于两个矩形,将是交集)我不需要重叠的几何图形-只需面积(例如:4平方英寸)重叠不应被计算多次-例如,假设3个大小和位置相同的矩形-它们彼此重叠-该区域应被计算一次(而不是三次)例下图包含三个矩形:A,B,CA和B重叠(如破折号所示)B和C重叠(如破折号所示)我正在寻找的是显示破折号的区域--AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA--------------BBBAAAAAAAAAAAAAAAA--------------BBBAAAAAAAAAAAAAAAA--------------BBBAAAAAAAAAAAAAAAA--------------BBB                BBBBBBBBBBBBBBBBB                BBBBBBBBBBBBBBBBB                BBBBBBBBBBBBBBBBB                BBBBBB-----------CCCCCCCC                BBBBBB-----------CCCCCCCC                BBBBBB-----------CCCCCCCC                      CCCCCCCCCCCCCCCCCCC                      CCCCCCCCCCCCCCCCCCC                      CCCCCCCCCCCCCCCCCCC                      CCCCCCCCCCCCCCCCCCC
查看完整描述

3 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

一种解决方法是将其绘制到画布上!使用半透明颜色绘制每个矩形。.NET运行时将使用优化的本机代码-甚至使用硬件加速器来绘制图形。


然后,您必须回读像素。每个像素是背景色,矩形色还是其他颜色?它可能是另一种颜色的唯一方法是两个或更多矩形重叠...


如果这太欺骗了,我建议像另外一个回答者一样推荐四叉树或r树。


查看完整回答
反对 回复 2019-10-08
  • 3 回答
  • 0 关注
  • 918 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信