0
我想組合/合併/相互接近(相似)的矩形。爲什麼我遞歸地嘗試這個沒有特別的理由,但它似乎是合適的。遞歸合併列表中的相似元素
但是我很想念這裏的東西。輸出是不正確的,我沒有考慮到這樣一個事實,即後來合併的矩形可能現在接近我認爲「不可合併」的矩形,並將其放入finalList
合併和檢查緊密度方法正常工作。
public static ArrayList<Rect> mergeCloseRects(ArrayList<Rect> sourceList, ArrayList<Rect> finalList) {
Rect rect = sourceList.get(0).clone();
sourceList.remove(0);
for (int i = 0; i < sourceList.size(); i++) {
if (rectsAreClose(rect, sourceList.get(i)) {
// put merged rectangle on top of the list
sourceList.add(0, getMergeRect(rect, sourceList.get(i)));
// remove rectangle that was merged with rect
sourceList.remove(i + 1);
mergeCloseRects(sourceList, finalList);
}
}
// if rect has no close neighbours
finalList.add(rect);
return finalList;
}
輸入
輸出
正如你所看到的矩形沒有真正合並。下方的矩形留在列表中。綠色輪廓表示新矩形的位置。