public static Arc Calculate(IAperture aperture, Point centre, double radius, double arcHeadingDeg, double arcWidthDeg) { double arcHeadingRadians = arcHeadingDeg * (Math.PI / 180); double arcWidthRadians = arcWidthDeg * (Math.PI / 180); double startAngle = arcHeadingRadians + (arcWidthRadians / 2); double endAngle = arcHeadingRadians - (arcWidthRadians / 2); return(new Arc() { Aperture = aperture, Start = new Point() { X = centre.X + (radius * Math.Cos(startAngle)), Y = centre.Y + (radius * Math.Sin(startAngle)) }, End = new Point() { X = centre.X + (radius * Math.Cos(endAngle)), Y = centre.Y + (radius * Math.Sin(endAngle)) }, Centre = centre }); }
public ArcFill(IAperture aperture, Point centre, double arcWidthDegrees, double arcHeadingDegrees, double radialInsideDistance, double radialOutsideDistance) { Aperture = aperture; InsideArc = Arc.Calculate(aperture, centre, radialInsideDistance, arcHeadingDegrees, arcWidthDegrees); OutsideArc = Arc.Calculate(aperture, centre, radialOutsideDistance, arcHeadingDegrees, arcWidthDegrees); }