Пример #1
0
        public void SizeTest()
        {
            // Normal case
            var circle = new Circle(new Size(3.0, 2.0));
            Assert.AreEqual(new Size(1.0, 1.0), circle.Size());

            // Extreme case (Inf)
            var infiniteCircle = new Circle(new Size(Double.PositiveInfinity, 0));
            Assert.AreEqual(new Size(0, 0), infiniteCircle.Size());

            // Extreme case (NaN)
            var nanCircle = new Circle(new Size(Double.NaN, 1));
            Assert.AreEqual(new Size(Double.NaN, Double.NaN), nanCircle.Size());
        }
Пример #2
0
        private void ArrangePath(Circle circle)
        {
            var tension = Tension % 1;
            var angle = Angle + Offset;

            var startAngle = angle - tension * Spread;
            var endAngle = angle + (1 - tension) * Spread;

            figure.StartPoint = circle.PointAt(startAngle);
            segment.Point = circle.PointAt(endAngle);

            segment.Size = circle.Size();
            segment.IsLargeArc = (Spread > 180);
        }
Пример #3
0
        private void ArrangePath(Circle circle)
        {
            arcFigure.StartPoint = circle.Center;

            sliceStart.Point = circle.PointAt(Angle + Offset);
            sliceEnd.Point = circle.Center;

            arcSegment.Point = circle.PointAt(Angle + Offset + Spread);

            arcSegment.Size = circle.Size();
            arcSegment.IsLargeArc = (Spread > 180);
        }