Пример #1
0
        public void GetNextPoint_FirstPoint_ShouldBeCenter()
        {
            var center = new PointF(1, 1);
            var spiral = new LogarithmicSpiral(center);
            var point  = spiral.GetNextPoint();

            point.Should().Be(center);
        }
Пример #2
0
        public void GetNextPoint_ShouldNot_GetEqualPoints()
        {
            var center = new PointF(1, 1);
            var spiral = new LogarithmicSpiral(center);
            var points = new List <PointF>();

            for (var i = 0; i < 100; i++)
            {
                var point = spiral.GetNextPoint();
                points.Should().NotContain(point);
                points.Add(point);
            }
        }
Пример #3
0
        public void GetNextPoint_ShouldGetPoints_FromSpiral()
        {
            var center         = new PointF(0, 0);
            var spiral         = new LogarithmicSpiral(center);
            var pointAngles    = new List <double>();
            var pointDistances = new List <double>();

            for (var i = 0; i < 1000; i++)
            {
                pointDistances.Add(CalculateDistanceBetween(spiral.GetNextPoint(), center));
                pointAngles.Add(DeflectionAngle(spiral.TurnsDistance, spiral.TurnsRadius, pointDistances[i]));
            }
            for (var i = 1; i < pointAngles.Count; i++)
            {
                pointAngles[i].Should().BeApproximately(spiral.AngleShift * (i - 1), 1e-5);
            }
            //pointAngles[i].Should().BeGreaterThan(pointAngles[i - 1]);
            //pointDistances[i].Should().BeGreaterThan(pointDistances[i - 1]);
        }
Пример #4
0
 public CircularCloudLayouter(Point center)
 {
     Center     = center;
     Spiral     = new LogarithmicSpiral(Center);
     rectangles = new List <Rectangle>();
 }