Rechtecke

22/12/2009 - 10:31 von Peter Forstmeier | Report spam
Hallo zusammen,
ich habe eine Collection<Rechteck> wobei die in der Liste enthaltenen
Rechtecke verschieden hoch sind.
Wie kann ich möglichst einfach und flexibel das Rechteck ermitteln das die
in der Liste enthaltenen umschließt.

Danke schonmal
Peter
 

Lesen sie die antworten

#1 Elmar Boye
23/12/2009 - 12:06 | Warnen spam
Hallo Peter,

"Peter Forstmeier" schrieb ...
ich habe eine Collection<Rechteck> wobei die in der Liste enthaltenen Rechtecke verschieden hoch sind.
Wie kann ich möglichst einfach und flexibel das Rechteck ermitteln das die in der Liste enthaltenen umschließt.



Wenn ich Dich richtig verstanden habe, suchst Du etwas wie:

private void TestGetOuterRectangle()
{
List<Rectangle> rectangleList = new List<Rectangle>();
rectangleList.Add(new Rectangle(10, 10, 5, 5));
rectangleList.Add(new Rectangle(10, 10, 20, 20));
rectangleList.Add(new Rectangle(20, 20, 20, 20));
rectangleList.Add(new Rectangle(5, 5, 20, 20));

Console.WriteLine(GetOuterRectangle(rectangleList).ToString());
}

public static Rectangle GetOuterRectangle(IEnumerable<Rectangle> rectangles)
{
int left = int.MaxValue;
int top = int.MaxValue;
int right = 0;
int bottom = 0;
foreach (Rectangle rectangle in rectangles)
{
left = Math.Min(left, rectangle.Left);
top = Math.Min(top, rectangle.Top);
right = Math.Max(right, rectangle.Right);
bottom = Math.Max(bottom, rectangle.Bottom);
}
return new Rectangle(left, top, right - left, bottom - top);
}

Gruß Elmar

Ähnliche fragen