/// <summary> /// Adds an elliptical arc to the current figure. The arc is specified WPF like. /// </summary> public void AddArc(XPoint point1, XPoint point2, XSize size, double rotationAngle, bool isLargeArg, SweepDirection sweepDirection) { PathFigure figure = CurrentPathFigure; if (figure.Segments.Count == 0) figure.StartPoint = point1.ToPoint(); else figure.Segments.Add(new LineSegment(point1.ToPoint(), true)); figure.Segments.Add(new ArcSegment(point2.ToPoint(), size.ToSize(), rotationAngle, isLargeArg, sweepDirection, true)); }
/// <summary> /// Adds an elliptical arc to the current figure. The arc is specified WPF like. /// </summary> public void AddArc(XPoint point1, XPoint point2, XSize size, double rotationAngle, bool isLargeArg, XSweepDirection sweepDirection) { #if CORE _corePath.AddArc(point1, point2, size, rotationAngle, isLargeArg, sweepDirection); #endif #if GDI DiagnosticsHelper.HandleNotImplemented("XGraphicsPath.AddArc"); #endif #if WPF PathFigure figure = CurrentPathFigure; if (figure.Segments.Count == 0) figure.StartPoint = point1.ToPoint(); else { // figure.Segments.Add(new LineSegment(point1.ToPoint(), true)); #if !SILVERLIGHT LineSegment lineSegment = new LineSegment(point1.ToPoint(), true); #else LineSegment lineSegment = new LineSegment(); lineSegment.Point = point1.ToPoint(); #endif figure.Segments.Add(lineSegment); } // figure.Segments.Add(new ArcSegment(point2.ToPoint(), size.ToSize(), rotationAngle, isLargeArg, sweepDirection, true)); #if !SILVERLIGHT ArcSegment arcSegment = new ArcSegment(point2.ToPoint(), size.ToSize(), rotationAngle, isLargeArg, (SweepDirection)sweepDirection, true); #else ArcSegment arcSegment = new ArcSegment(); arcSegment.Point = point2.ToPoint(); arcSegment.Size = size.ToSize(); arcSegment.RotationAngle = rotationAngle; arcSegment.IsLargeArc = isLargeArg; arcSegment.SweepDirection = (SweepDirection)sweepDirection; #endif figure.Segments.Add(arcSegment); #endif }
/// <summary> /// Adds an elliptical arc to the current figure. The arc is specified WPF like. /// </summary> public void AddArc(XPoint point1, XPoint point2, XSize size, double rotationAngle, bool isLargeArg, SweepDirection sweepDirection) { PathFigure figure = CurrentPathFigure; if (figure.Segments.Count == 0) figure.StartPoint = point1.ToPoint(); else { // figure.Segments.Add(new LineSegment(point1.ToPoint(), true)); #if !SILVERLIGHT LineSegment lineSegment = new LineSegment(point1.ToPoint(), true); #else LineSegment lineSegment = new LineSegment(); lineSegment.Point = point1.ToPoint(); #endif figure.Segments.Add(lineSegment); } // figure.Segments.Add(new ArcSegment(point2.ToPoint(), size.ToSize(), rotationAngle, isLargeArg, sweepDirection, true)); #if !SILVERLIGHT ArcSegment arcSegment = new ArcSegment(point2.ToPoint(), size.ToSize(), rotationAngle, isLargeArg, sweepDirection, true); #else ArcSegment arcSegment = new ArcSegment(); arcSegment.Point = point2.ToPoint(); arcSegment.Size = size.ToSize(); arcSegment.RotationAngle = rotationAngle; arcSegment.IsLargeArc = isLargeArg; arcSegment.SweepDirection = sweepDirection; #endif figure.Segments.Add(arcSegment); }