我正在创建一个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/