コード例 #1
0
        public void T12_Invertability()
        {
            Mat4 mat4 = new Mat4(6, 4, 4, 4, 5, 5, 7, 6, 4, -9, 3, -7, 9, 1, 7, -6);

            Assert.AreEqual(-2120, mat4.Det());

            mat4 = new Mat4(-4, 2, -2, -3, 9, 6, 2, 6, 0, -5, 1, -5, 0, 0, 0, 0);
            Assert.AreEqual(0, mat4.Det());
        }
コード例 #2
0
        public void T13_Inversion()
        {
            Mat4 a = new Mat4(-5, 2, 6, -8, 1, -5, 1, 8, 7, 7, -6, -7, 1, -3, 7, 4);
            Mat4 b = a.Inverse();

            Assert.AreEqual(532, a.Det());
            Assert.IsTrue(Utility.FE(-160 / 532f, b[3, 2]));
            Assert.IsTrue(Utility.FE(105f / 532, b[2, 3]));
            Assert.AreEqual(new Mat4(0.21805f, 0.45113f, 0.24060f, -0.04511f,
                                     -0.80827f, -1.45677f, -0.44361f, 0.52068f,
                                     -0.07895f, -0.22368f, -0.05263f, 0.19737f,
                                     -0.52256f, -0.81391f, -0.30075f, 0.30639f), b);
        }
コード例 #3
0
        public void T11_Det()
        {
            Mat3 a = new Mat3(1, 2, 6, -5, 8, -4, 2, 6, 4);

            Assert.AreEqual(56, a.Cofactor(0, 0));
            Assert.AreEqual(12, a.Cofactor(0, 1));
            Assert.AreEqual(-46, a.Cofactor(0, 2));
            Assert.AreEqual(-196, a.Det());

            Mat4 b = new Mat4(-2, -8, 3, 5, -3, 1, 7, 3, 1, 2, -9, 6, -6, 7, 7, -9);

            Assert.AreEqual(-4071, b.Det());
        }