예제 #1
0
        public Angle AngleBetweenPointsClockwise([NotNull] Point startPoint,
                                                 [NotNull] Point endPoint)
        {
            var calculator = new CircleCentrePointToPointCalculator(CentrePoint,
                                                                    startPoint,
                                                                    endPoint);

            return(calculator.AngleRelativeToYAxisClockwise);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }