多边形的边界矩形 - Android / Java

时间:2014-07-30 12:57:01

标签: java android

我正在创建一个Android应用程序,在这里我想制作多边形形状的边界矩形(凹/凸)。我有每个多边形的坐标,我不知道这个我试过但它不满足。我将如何创建一个通用代码来制作每个多边形的边界矩形。

1 个答案:

答案 0 :(得分:2)

如果迭代所有点并计算每个坐标轴的最小和最大点,则可以采用极值并形成矩形。

void CalculateBoundingBox( Polygon p, Point lowerRight, Point upperLeft )
{
    //Method to calculate the bounding box of this polyline
    int size = p.size();
    double xmin = /*infinity*/;
    double xmax = /*negative infinity*/;
    double ymin = xmin, ymax = xmax;

    for ( int i = 0; i < size; ++i )
    {
        if ( p[i].x < xmin )
            xmin = p[i].x;

        if ( p[i].y < ymin )
            ymin = p[i].y;

        if ( p[i].x > xmax )
            xmax = p[i].x;

        if ( p[i].y > ymax )
            ymax = p[i].y;
    }

    lowerRight.set( xmax, ymin );
    upperLeft.set( xmin, ymax );
}