【发布时间】:2023-12-19 06:46:02
【问题描述】:
我正在创建一个 Android 应用程序,在这里我想制作多边形形状的边界矩形(凹/凸)。我有每个多边形的坐标,我对此一无所知,我尝试过但不满意。我将如何创建一个通用代码来制作每个多边形的边界矩形。
【问题讨论】:
我正在创建一个 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 );
}
【讨论】: