示例#1
0
        public void SlopeChanged_To_String_Test()
        {
            SlopeChanged sChanged = new SlopeChanged();

            string expected = string.Format("Delta: 0, NewSlope: 0");

            Assert.AreEqual(expected, sChanged.ToString());
        }
示例#2
0
        public void SlopeChanged_Nothing_Set_Test()
        {
            SlopeChanged sChanged = new SlopeChanged();

            int expectedSlope = 0;
            int expectedDelta = 0;

            Assert.IsTrue(expectedSlope == sChanged.NewSlope);
            Assert.IsTrue(expectedDelta == sChanged.NewSlope);
        }
示例#3
0
        public void SlopeChanged_NewSlope_GetterSetter_Test()
        {
            SlopeChanged sChanged = new SlopeChanged()
            {
                NewSlope = 3
            };

            int expected = 3;

            Assert.AreEqual(expected, sChanged.NewSlope);
        }
示例#4
0
        public void SlopeChanged_Delta_GetterSetter_Test()
        {
            SlopeChanged sChanged = new SlopeChanged()
            {
                Delta = 4
            };

            int expected = 4;

            Assert.AreEqual(expected, sChanged.Delta);
        }
示例#5
0
        public IReturnType Calculate(ValidSetOfTouchPoints set)
        {
            SlopeChanged sc = new SlopeChanged();

            if (set.Count != 2)
                throw new InvalidDataSetException("Slope can only be calculated for two touch points!");

            // Calculate current slope
            sc.NewSlope = TrigonometricCalculationHelper.GetSlopeBetweenPoints(set[0].Position, set[1].Position) * 180 / 3.14;

            // Check if enough history data is available
            if (set[0].Stroke.StylusPoints.Count > 1 && set[1].Stroke.StylusPoints.Count > 1)
            {
                // Calculate slope for last position
                double prevSlope = TrigonometricCalculationHelper.GetSlopeBetweenPoints(
                    set[0].Stroke.StylusPoints[set[0].Stroke.StylusPoints.Count - 2],
                    set[1].Stroke.StylusPoints[set[1].Stroke.StylusPoints.Count - 2]) * 180 / 3.14;

                sc.Delta = sc.NewSlope - prevSlope;
            }

            return sc;
        }