Ejemplo n.º 1
0
        public void Matrix3dDeterminantTest()
        {
            Matrix3d m = new Matrix3d();

            m.A00 = 6;
            m.A10 = 4;
            m.A20 = 2;
            m.A01 = 1;
            m.A11 = -2;
            m.A21 = 8;
            m.A02 = 1;
            m.A12 = 5;
            m.A22 = 7;
            Assert.AreEqual(-306, m.Determinate());
        }
Ejemplo n.º 2
0
        private double GetDeterminant(Point3d p, VectorField f)
        {
            var      dx = 1.0; var dy = dx; var dz = dx;
            var      px = new Point3d(dx, 0, 0);
            var      py = new Point3d(0, dy, 0);
            var      pz = new Point3d(0, 0, dz);
            Matrix3d m  = new Matrix3d();

            m.A00 = (f.X[p + px / 2] - f.X[p - px / 2]) / dx;
            m.A01 = (f.X[p + py / 2] - f.X[p - py / 2]) / dy;
            m.A02 = (f.X[p + pz / 2] - f.X[p - pz / 2]) / dz;

            m.A10 = (f.Y[p + px / 2] - f.X[p - px / 2]) / dx;
            m.A11 = (f.Y[p + py / 2] - f.X[p - py / 2]) / dy;
            m.A12 = (f.Y[p + pz / 2] - f.X[p - pz / 2]) / dz;

            m.A20 = (f.Z[p + px / 2] - f.X[p - px / 2]) / dx;
            m.A21 = (f.Z[p + py / 2] - f.X[p - py / 2]) / dy;
            m.A22 = (f.Z[p + pz / 2] - f.X[p - pz / 2]) / dz;

            return(m.Determinate());
        }