我正在创建一个Android应用程序,在这里我要制作多边形形状(凹/凸)的边界矩形。我有每个多边形的坐标,对此我一无所知,但我不满意。我将如何创建一个通用代码来制作每个多边形的边界矩形。

最佳答案

如果遍历所有点并计算每个坐标轴上的最小和最大点,则可以取极值并形成一个矩形。

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 );
}

关于java - 多边形的边界矩形-Android/Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25037428/

10-08 21:12