Hi Guys
I have been asked to solve an issue - same as the one posted here;
http://social.msdn.microsoft.com/Forums/da-DK/csharpgeneral/thread/e285e4d9-c43d-4482-a2e7-c8d1861657e0[
^]
I have managed to get the rectangles up and displaying, the problem i am having is when i try to get them all on one touching and NOT overlapping -
if i manually add 3 RANDOM rectangles i can get 2 of them to look perfect, the last will appear in random and overlapping.
If i manually set the properties of the rectangles, i can accomplish what i am wanting - hence, the confusion;
The below code works;
rectangles = new List<rectangle>();
Rectangle rect4 = new Rectangle(10, 160, 100, 100);
Rectangle rect5 = new Rectangle(rect4.X + rect4.Width, 160, 120, 120);
Rectangle rect6 = new Rectangle(rect5.X + rect5.Width, 160, 100, 140);
Rectangle rect7 = new Rectangle(rect6.X + rect6.Width, 160, 100, 80);
rectangles.Add(rect4);
rectangles.Add(rect5);
rectangles.Add(rect6);
rectangles.Add(rect7);
graphics.DrawRectangles(pen1,rectangles.ToArray());
Yet the following loop doesn't;
Rectangle foo = GetRandomRectangle(rng);
Rectangle bar = GetRandomRectangle(rng);
Rectangle car = GetRandomRectangle(rng);
List<rectangle> rectangles = new List<rectangle>();
rectangles.Add(foo);
rectangles.Add(bar);
rectangles.Add(car);
foreach (Rectangle rect in rectangles)
{
if (rect.Height > TallestRectangle) { TallestRectangle = rect.Height; }
}
foreach (Rectangle rect in rectangles)
{
if (PreviousRectangleX + PreviousRectangleWidth == 0)
{
graphics.DrawRectangle(pen1, new Rectangle(rect.X, (TallestRectangle - rect.Height), rect.Width, rect.Height));
}
else
{
graphics.DrawRectangle(pen1, new Rectangle((PreviousRectangleX + PreviousRectangleWidth), (TallestRectangle - rect.Height), rect.Width, rect.Height));
}
PreviousRectangleX = rect.X;
PreviousRectangleWidth = rect.Width;
}
Function GetRandomRectagle;
private Rectangle GetRandomRectangle(Random rnd)
{
int x = rnd.Next(4, 110);
int y = rnd.Next(4, 110);
int width = rnd.Next(4, 110);
int height = rnd.Next(4, 110);
Rectangle rec = new Rectangle(x, y, width, height);
return rec
};
Any help would be greatly appreciated?
Regards