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()); }
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); }
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); }