
Untitled
By: a guest on
May 15th, 2012 | syntax:
None | size: 1.49 KB | hits: 22 | expires: Never
import java.util.*;
import java.awt.Rectangle;
public class Homework13A
{
public static void main(String[] args)
{
ArrayList<Rectangle> test = new ArrayList<Rectangle>();
test.add(new Rectangle(10, 20, 30, 40));
test.add(new Rectangle(20, 10, 30, 40));
test.add(new Rectangle(10, 20, 40, 50));
test.add(new Rectangle(20, 10, 50, 30));
Rectangle enc = enclosing(test);
System.out.println(enc);
System.out.println("Expected: Rectangle[x=10,y=10,width=61,height=61]");
}
/**
Computes the smallest rectangle enclosing all rectangles in
an array list.
@param rects an array list of rectangles of size >= 1
@return the smallest rectangle enclosing all rectangles in rect
*/
public static Rectangle enclosing(ArrayList<Rectangle> rects)
{
double leftX = Integer.MAX_VALUE;
double leftY = Integer.MAX_VALUE;
double rightX = Integer.MIN_VALUE;
double rightY = Integer.MIN_VALUE;
for (Rectangle r : rects) {
if (r.getX() < leftX)
leftX = r.getX();
if (r.getY() < leftY)
leftY = r.getY();
if ((r.getX() + r.getWidth()) > rightX)
rightX = (r.getX() + r.getWidth());
if ((r.getY() + r.getHeight()) > rightY)
rightY = (r.getY() + r.getHeight());
}
Rectangle enc = new Rectangle((int) leftX, (int) leftY, (int) (rightX - leftX), (int) (rightY - leftY));
return enc;
}
}