繁体   English   中英

查找给定重叠矩形集合的多边形顶点的算法

[英]Algorithm for finding polygon vertices for a given set of overlapping rectangles

寻找最少的矩形以覆盖一组矩形而不重叠的算法

很好的解释,加雷斯。 我想弄清楚的是如何实现解决方案的反面,即如何从一组矩形开始并到达多边形。

我的解决方案适用于所有情况,除非两个或多个矩形的部分或整个边缘相互重叠。

如何消除构成重叠边缘的点?

根据链接的问题,我将假设矩形是轴对齐的,并且它们具有成对的不相交的内部。 将每个矩形分解为四个线段,顺时针方向。 对水平和垂直线段重复以下过程。

将水平线段除以y。 对于每个y,每个段都引发两个事件:尾部的开始事件和头部的停止事件。 用x对事件进行排序(请注意,面向左的段的停止事件在相应的开始事件之前发生)。 初始化变量sign = 0 ,然后进行遍历,在每个开始事件上执行sign += 1 ,在每个停止上执行sign -= 1 每当sign0变为1 ,都将以其尾部在当前扫描位置开始一个定向段。 每当sign1变为0 ,以其头在当前扫描位置结束该段,如果其退化则将其丢弃。 同样,每当sign0-1 ,就开始以其当前扫描位置的头部为方向的线段。 每当sign-1变为0 ,以当前扫描位置的尾部结束该段,如果其退化则将其丢弃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM