public Angle AngleBetweenPointsClockwise([NotNull] Point startPoint, [NotNull] Point endPoint) { var calculator = new CircleCentrePointToPointCalculator(CentrePoint, startPoint, endPoint); return(calculator.AngleRelativeToYAxisClockwise); }
public void Setup() { m_CentrePoint = new Point(3.0, 4.0); m_StartPoint = new Point(3.0, 6.0); m_EndPoint = new Point(5.0, 4.0); m_Calculator = new CircleCentrePointToPointCalculator(m_CentrePoint, m_StartPoint, m_EndPoint); }
public ArcSegment([NotNull] ICircle circle, [NotNull] Point startPoint, [NotNull] Point endPoint, Constants.TurnDirection arcTurnDirection = Constants.TurnDirection.Clockwise) { ValidateStartAndEndPoint(circle, startPoint, endPoint); m_Circle = circle; StartPoint = startPoint; EndPoint = endPoint; TurnDirection = arcTurnDirection; ICircleCentrePointToPointCalculator calculator = new CircleCentrePointToPointCalculator( m_Circle.CentrePoint, StartPoint, EndPoint); AngleClockwise = calculator.AngleRelativeToYAxisCounterClockwise; AngleCounterClockwise = calculator.AngleRelativeToYAxisClockwise; LengthClockwise = CalculateLength(AngleClockwise, m_Circle.Radius); LengthCounterClockwise = CalculateLength(AngleCounterClockwise, m_Circle.Radius); Length = arcTurnDirection == Constants.TurnDirection.Clockwise ? LengthClockwise : LengthCounterClockwise; AngleToXAxisAtStartPoint = CalculateTangentAngleToXAxisAtPoint(circle.CentrePoint, startPoint, arcTurnDirection); AngleToXAxisAtEndPoint = CalculateTangentAngleToXAxisAtPoint(circle.CentrePoint, endPoint, arcTurnDirection); }