Compute the Minimum Bounding Rectangle (MBR) that surrounds the given set of 2D objects, i.e., the axis-aligned rectangle, which contains all of the specified objects and is the one with minimum area among all rectangles with this property.
First, you are given t (t<100) - the number of test cases.
Each of the test cases starts with one integer n (n < 100) - the number of objects in the set. In the successive n lines, the descriptions of the objects follow.
Each object is described by one character and some parameters:
Successive test cases are separated by an empty line.
For each of the test cases output four numbers - the coordinates of the two points that correspond to the lower left and the upper right corner of the MBR, in the following order: first the x-coordinate of the lower left corner, then the y-coordinate of the lower left corner, the x-coordinate of the upper right corner and the y-coordinate of upper right corner.
You can assume that all object parameters are integersand that -1000 -1000 1000 1000 is a bounding rectangle for of all of them.
Input: 3 1 p 3 3 2 c 10 10 20 c 20 20 10 1 l 0 0 100 20 Output: 3 3 3 3 -10 -10 30 30 0 0 100 20
test 1: points only (2 pts) test 2: circles only (2 pts) test 3: lines only (2 pts) test 4: mixed (2 pts) test 5: mixed (2 pts)
题意 :给出一些几何图形,点,圆,线段,求能将其包含的最小矩形(与x轴,y轴平行)
思路:实际上就是比较x,y轴上找到对应的最小值和最大值
代码 如下:
$px2)
{
$tmp = $px1; $px1 = $px2; $px2 = $tmp;
}
if ($py1 > $py2)
{
$tmp = $py1; $py1 = $py2; $py2 = $tmp;
}
$x1 = min($x1, $px1);
$y1 = min($y1, $py1);
$x2 = max($x2, $px2);
$y2 = max($y2, $py2);
}
}
echo $x1, ' ', $y1, ' ', $x2, ' ', $y2, ' ', PHP_EOL;
if (0 != $t) fgets(STDIN);
}