Ejemplo n.º 1
0
        static void QuaternionMath()
        {
            //Collect user input, All units are arbitrary
            Console.Write("Enter a scalar value: ");
            float scalar = Convert.ToSingle(Console.ReadLine());
            Console.WriteLine("Enter the first quaternion:");
            Console.Write("Scalar component: ");
            float w = Convert.ToSingle(Console.ReadLine());
            Console.Write("Vector-x component: ");
            float x = Convert.ToSingle(Console.ReadLine());
            Console.Write("Vector-y component: ");
            float y = Convert.ToSingle(Console.ReadLine());
            Console.Write("Vector-z component: ");
            float z = Convert.ToSingle(Console.ReadLine());
            Quaternion first = new Quaternion(w, x, y, z);
            Console.WriteLine("Enter the second quaternion:");
            Console.Write("Scalar component: ");
            w = Convert.ToSingle(Console.ReadLine());
            Console.Write("Vector-x component: ");
            x = Convert.ToSingle(Console.ReadLine());
            Console.Write("Vector-y component: ");
            y = Convert.ToSingle(Console.ReadLine());
            Console.Write("Vector-z component: ");
            z = Convert.ToSingle(Console.ReadLine());
            Quaternion second = new Quaternion(w, x, y, z);

            //Display output
            Console.WriteLine("Sum: " + (first + second));
            Console.WriteLine("Difference: " + (first - second));
            Console.WriteLine("Scalar multiplication: " + (scalar * first) + " and " + (scalar * second));
            Console.WriteLine("Quaternion multipliation: " + (first * second));
            Console.WriteLine("Magnitudes: " + first.GetMagnitude() + " and " + second.GetMagnitude());
            Console.WriteLine("Conjugates: " + first.GetConjugate() + " and " + second.GetConjugate());
            Console.WriteLine("Inverses: " + first.GetInverse() + " and " + second.GetInverse());
        }