public void InitializeTests() { center = new Point(1000, 1000); var spiral = new ArchimedesSpiral(center); cloudLayouter = new CloudLayouter(spiral, center); }
private static void FillCloudWithRectangles(CloudLayouter cloud) { var rnd = new Random(); for (var i = 0; i < CountOfRectangles; i++) { var width = rnd.Next(MinSizeOfRectangle * 10, MaxSizeOfRectangle * 10); var height = rnd.Next(MinSizeOfRectangle, MaxSizeOfRectangle); var size = new Size(width, height); cloud.PutNextRectangle(size); } }
public static void Main() { var center = new Point(BitmapWidth / 2, BitmapHeight / 2); var spiral = new ArchimedesSpiral(center); var cloudLayouter = new CloudLayouter(spiral, center); FillCloudWithRectangles(cloudLayouter); var bitmap = GetBitmapWithRectangles(cloudLayouter); var directory = Environment.CurrentDirectory; bitmap.Save($"{directory}\\..\\..\\Images\\{BitmapName}{CountOfRectangles}.png", ImageFormat.Png); }
public static Bitmap GetBitmapWithRectangles(CloudLayouter cloudLayouter) { var bitmap = new Bitmap(BitmapWidth, BitmapHeight); var pen = new Pen(Color.Black); var rectangles = cloudLayouter.Rectangles; var center = cloudLayouter.Center; var maxDist = (int)rectangles .Select(x => GetDistanceFromRectangleToPoint(x, center)) .Max(); foreach (var rectangle in rectangles) { var color = GetColorOfRectangle(rectangle, center, maxDist); var brush = new SolidBrush(color); Graphics.FromImage(bitmap).FillRectangle(brush, rectangle); Graphics.FromImage(bitmap).DrawRectangle(pen, rectangle); } return(bitmap); }