Ejemplo n.º 1
0
        public KtQuaternion(Angle angle, KtVector3D axis)
        {
            var c = Angle.Cos(angle / 2);
            var s = Angle.Sin(angle / 2);

            W = c;
            X = s * axis.X;
            Y = s * axis.Y;
            Z = s * axis.Z;
        }
Ejemplo n.º 2
0
        public void RotationTest()
        {
            var expected = new KtVector3D(2, 3, 4).Normalize();
            var initial  = new KtVector3D(0, 0, 1);
            var angle    = expected.AngleBetween(initial);
            var perp2    = expected.Cross(initial).Cross(initial).Cross(initial).Normalize();
            var q4       = new KtQuaternion(angle, perp2);
            var q4p      = expected.RotationFrom(initial);

            Assert.AreEqual(q4, q4p);
            Assert.AreEqual(expected, initial.RotateBy(q4p));
        }
Ejemplo n.º 3
0
        public void DotProductTest()
        {
            var vec1  = new KtVector3D(3, -1, 4);
            var yaxis = new KtVector3D(0, 1, 0);
            var xaxis = new KtVector3D(1, 0, 0);
            var dot   = vec1.Cross(yaxis);
            var dotx  = vec1.Cross(xaxis);

            Console.WriteLine(dot);
            Console.WriteLine(dotx);
            Assert.AreEqual(dot, new KtVector3D(-4, 0, 3));
        }