Example #1
0
        public void GetColumn()
        {
            Matrix2x2f m = Indexed2x2();

            Assert.AreEqual(new Vector2f(0, 1), m.GetColumn(0));
            Assert.AreEqual(new Vector2f(2, 3), m.GetColumn(1));
        }
Example #2
0
        public void SetColumn()
        {
            Matrix2x2f m = new Matrix2x2f();

            m.SetColumn(0, new Vector2f(0, 1));
            m.SetColumn(1, new Vector2f(2, 3));

            Assert.AreEqual(new Vector2f(0, 1), m.GetColumn(0));
            Assert.AreEqual(new Vector2f(2, 3), m.GetColumn(1));
        }
Example #3
0
        public static Matrix2x2f PolarDecomposition(Matrix2x2f m)
        {
            Matrix2x2f q = m + new Matrix2x2f(m.m11, -m.m10, -m.m01, m.m00);

            Vector2f c0 = q.GetColumn(0);
            Vector2f c1 = q.GetColumn(1);

            float s = c0.Magnitude;

            q.SetColumn(0, c0 / s);
            q.SetColumn(1, c1 / s);

            return(q);
        }
Example #4
0
        public static Matrix2x2f QRDecomposition(Matrix2x2f m)
        {
            Vector2f   a = m.GetColumn(0).Normalized;
            Matrix2x2f q = new Matrix2x2f();

            q.SetColumn(0, a);
            q.SetColumn(1, a.PerpendicularCCW);

            return(q);
        }