public void Return_Rectangles() { IRectangleLayouter layouter = CreateTrackedLayouter(10, 8, 0.1); Rectangle rectA = layouter.Place(new Vector(10, 10)); Rectangle rectB = layouter.Place(new Vector(10, 10)); rectA.ShouldBeEquivalentTo(new Rectangle(Vector.Empty, new Vector(10, 10))); rectB.Center.Should().NotBe(Vector.Empty); }
public Rectangle Place(Vector rectangleSize) { Rectangle rect = _baseLayouter.Place(rectangleSize); Rectangles.Add(rect); return(rect); }
private void Form1_KeyDown(object sender, KeyEventArgs e) { _cloudLayouter = new PositionedLayouter(new CircularCloudLayouter(200, 32, 0.1), new Vector(860, 540)); _rectangles.Clear(); for (int i = 0; i < 97; i++) { Rectangle rect = _cloudLayouter.Place(new Vector(40, 40)); _rectangles.Add(rect); } Invalidate(); }
public void GenerateRectangles_WhichPlacedInCircle() { IRectangleLayouter layouter = CreateTrackedLayouter(10, 32, 0.1); Vector rectangleSize = new Vector(40, 40); List <Rectangle> rectangles = Enumerable.Repeat(rectangleSize, 97).Select(size => layouter.Place(size)).ToList(); foreach (double distanceToCenter in rectangles.Select(rect => rect.Center.Length)) { distanceToCenter.Should().BeLessThan(220); } }
public void GenerateRectangles_WhichPlacedWithMaxDensity() { IRectangleLayouter layouter = CreateTrackedLayouter(10, 32, 0.1); Vector rectangleSize = new Vector(40, 40); List <Rectangle> rectangles = Enumerable.Repeat(rectangleSize, 97).Select(size => layouter.Place(size)).ToList(); Rectangle bounds = rectangles.Aggregate(new Rectangle(), (current, rect) => current.Encapsulate(rect)); double circleArea = System.Math.PI * 220 * 220; double shapeArea = bounds.Area; System.Math.Abs(circleArea / shapeArea).Should().BeGreaterThan(0.75); }
public Rectangle Place(Vector rectangleSize) { return(_rectangleLayouter.Place(rectangleSize).Move(_center)); }