我有一组具有相同宽度和高度的矩形,并且始终是adiacent.我知道所有顶点的位置,每个顶点只有4个(因为是正方形).
这张图片可以解释这个:
如果有任何差距,如果算法将"填补"差距,则可以.
我搜索了很多,找不到任何好的东西.我需要一个简单的算法,它不一定非常有效.让我们说我们有7个矩形,就像图像中的第二个多边形示例一样.如果我先将1与2合并,然后将我们的新多边形与3合并,那么就可以了,依此类推,它不一定非常快,因为最多会有50个矩形.
因为您的形状仅由矩形组成且它们始终相邻,所以合并算法比没有这些假设的算法简单得多.
从矩形创建所有边的列表.一个矩形有4个边.
让Edge
与正确定义一个类compareTo()
和equals()
.
对边列表进行排序(使用compareTo
).
遍历列表.如果列表TWICE中存在相同的边缘,请从列表中删除它们.
其余边是多边形的边.