2012-12-07 83 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数组是好的:)