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