Beispiel #1
0
        public static Vector2 ProductXY(Rotation3 r, Vector3 v)
        {
            var q1 = r.Quaternion * v;
            var q2 = r.Quaternion.Conjugate;

            var x = QuaternionUtils.ProductB(q1, q2);
            var y = QuaternionUtils.ProductC(q1, q2);

            return(new Vector2(x, y));
        }
Beispiel #2
0
        public void Methods_for_individual_components_of_quaternion_product_are_consistent_with_product_operator()
        {
            var x = new Quaternion(-0.1, 0.25, 0.52, -0.7);
            var y = new Quaternion(0.89, 1.1, -2.56, 3.14);

            var expected = x * y;
            var actual   = new Quaternion(QuaternionUtils.ProductA(x, y), QuaternionUtils.ProductB(x, y), QuaternionUtils.ProductC(x, y), QuaternionUtils.ProductD(x, y));

            ExpectAlmostEqual(actual, expected);
        }
Beispiel #3
0
 public static double ProductY(Rotation3 r, Vector3 v)
 {
     return(QuaternionUtils.ProductC(r.Quaternion * v, r.Quaternion.Conjugate));
 }