2012-12-07 108 views
0

我真的找不到任何資源來知道如何計算一組點的邊界框。我想要計算邊界框(我想知道邊界框矩形的所有四個角)的浮點/整型數組。我該如何做到這一點?Oriented邊界框 - Android

+0

你想知道的觸摸是否是在矩形內或不 ? –

+0

我有一個手勢覆蓋視圖在一個矩形...我想找到手勢的邊界框 –

回答

1

你可以通過數組循環:

int minX = Integer.MAX_VALUE, minY, maxX, maxY = Integer.MAX_VALUE; 

for (int i=0;i<myArray.length;i++){ 
    if (myArray[i].x > maxX){ 
     maxX = myArray[i].x; 
    } else if (myArray[i].x < minX) { 
     minX = myArray[i].x; 
    } else if (myArray[i].y > maxY){ 
     maxY = myArray[i].y; 
    } else (myArray[i].y < minY) { 
     minY = myArray[i].y;(
    } 
} 

你沒有說你用的是什麼樣的名單(點陣列或其他),所以你需要調整myArray[i].ymaxY = Integer.MAX_VALUE要求。

0

計算AABB(軸對齊邊界框)非常簡單。只需對每個軸上的點進行排序,找到每個軸上的最小最大值。這四個點的交點就是你的AAB矩形。

計算OBB(面向邊界框)稍微不重要。幸運的是在GestureUtils一種方法,正是這麼做的,即:

GestureUtils.computeOrientedBoundingBox(float[] points)

傳分和生活的你的int數組是好的:)