Пример #1
0
            public void can_normalize_sample()
            {
                var actual   = new VectorD(new[] { 3.0, 4, 5, -6 });
                var expected = actual.GetQuotient(actual.GetMagnitude());

                actual.Normalize();

                Assert.Equal(expected, actual);
            }
Пример #2
0
            public void zero_vector_normalizes_to_zero()
            {
                var actual   = new VectorD(4);
                var expected = new VectorD(4);

                actual.Normalize();

                Assert.Equal(expected, actual);
            }
Пример #3
0
        /// <summary>
        /// Retrieves the angle, expressed in radians, between the two specified vectors.
        /// </summary>
        /// <param name="vector1">The first vector to evaluate.</param>
        /// <param name="vector2">The second vector to evaluate.</param>
        /// <returns>The angle, in radians, between vector1 and vector2.</returns>
        public static double AngleBetween(VectorD vector1, VectorD vector2)
        {
            vector1.Normalize();
            vector2.Normalize();
            double angle = Math.Atan2(vector2.y, vector2.x) - Math.Atan2(vector1.y, vector1.x);

            if (angle > Math.PI)
            {
                angle -= Math.PI * 2.0;
            }
            else if (angle < -Math.PI)
            {
                angle += Math.PI * 2.0;
            }
            return(angle);
        }
Пример #4
0
 /// <summary>
 /// Retrieves the angle, expressed in radians, between the two specified vectors.
 /// </summary>
 /// <param name="vector1">The first vector to evaluate.</param>
 /// <param name="vector2">The second vector to evaluate.</param>
 /// <returns>The angle, in radians, between vector1 and vector2.</returns>
 public static double AngleBetween(VectorD vector1, VectorD vector2)
 {
     vector1.Normalize();
     vector2.Normalize();
     double angle = Math.Atan2(vector2.y, vector2.x) - Math.Atan2(vector1.y, vector1.x);
     if (angle > Math.PI)
     {
         angle -= Math.PI * 2.0;
     }
     else if (angle < -Math.PI)
     {
         angle += Math.PI * 2.0;
     }
     return angle;
 }
Пример #5
0
 public void NormalizeException()
 {
     VectorD v = new VectorD(11);
       v.Normalize();
 }
Пример #6
0
 public void Normalize()
 {
     VectorD v = new VectorD(new[] { 3.0, -1.0, 23.0, 0.4 });
       v.Normalize();
       Assert.IsTrue(v.IsNumericallyNormalized);
 }