예제 #1
0
        public static Matrix43f operator +(Matrix43f M1, Matrix43f M2)
        {
            Matrix43f Result = new Matrix43f(false);

            Result.data[0] = M1.data[0] + M2.data[0];
            Result.data[1] = M1.data[1] + M2.data[1];
            Result.data[2] = M1.data[2] + M2.data[2];
            Result.data[3] = M1.data[3] + M2.data[3];
            Result.data[4] = M1.data[4] + M2.data[4];
            Result.data[5] = M1.data[5] + M2.data[5];
            return(Result);
        }
예제 #2
0
        public static Matrix43f operator *(Matrix43f M, float s)
        {
            Matrix43f Result = new Matrix43f(false);

            Result.data[0] = M.data[0] * s;
            Result.data[1] = M.data[1] * s;
            Result.data[2] = M.data[2] * s;
            Result.data[3] = M.data[3] * s;
            Result.data[4] = M.data[4] * s;
            Result.data[5] = M.data[5] * s;
            return(Result);
        }
예제 #3
0
        //обращение матрицы - не доделано
        public static Matrix43f operator !(Matrix43f M)
        {
            Matrix43f Result = new Matrix43f(false);
            float     a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11;
            float     OneDivDet = 1 / M.Determinant();

            a0 = M.data[0]; a1 = M.data[1]; a2 = M.data[2]; a3 = M.data[3];
            a4 = M.data[4]; a5 = M.data[5]; a6 = M.data[6]; a7 = M.data[7];
            a8 = M.data[8]; a9 = M.data[9]; a10 = M.data[10]; a11 = M.data[11];

            Result *= OneDivDet;
            return(Result);
        }
예제 #4
0
        public static Matrix43f operator *(Matrix43f M1, Matrix43f M2)
        {
            Matrix43f Result = new Matrix43f(false);

            Result.data[0] = M1.data[0] * M2.data[0] + M1.data[1] * M2.data[4] + M1.data[2] * M2.data[8];
            Result.data[1] = M1.data[0] * M2.data[1] + M1.data[1] * M2.data[5] + M1.data[2] * M2.data[9];
            Result.data[2] = M1.data[0] * M2.data[2] + M1.data[1] * M2.data[6] + M1.data[2] * M2.data[10];
            Result.data[3] = M1.data[0] * M2.data[3] + M1.data[1] * M2.data[7] + M1.data[2] * M2.data[11] + M1.data[3];

            Result.data[4] = M1.data[4] * M2.data[0] + M1.data[5] * M2.data[4] + M1.data[6] * M2.data[8];
            Result.data[5] = M1.data[4] * M2.data[1] + M1.data[5] * M2.data[5] + M1.data[6] * M2.data[9];
            Result.data[6] = M1.data[4] * M2.data[2] + M1.data[5] * M2.data[6] + M1.data[6] * M2.data[10];
            Result.data[7] = M1.data[4] * M2.data[3] + M1.data[5] * M2.data[7] + M1.data[6] * M2.data[11] + M1.data[7];

            Result.data[8]  = M1.data[8] * M2.data[0] + M1.data[9] * M2.data[4] + M1.data[10] * M2.data[8];
            Result.data[9]  = M1.data[8] * M2.data[1] + M1.data[9] * M2.data[5] + M1.data[10] * M2.data[9];
            Result.data[10] = M1.data[8] * M2.data[2] + M1.data[9] * M2.data[6] + M1.data[10] * M2.data[10];
            Result.data[11] = M1.data[8] * M2.data[3] + M1.data[9] * M2.data[7] + M1.data[10] * M2.data[11] + M1.data[11];

            return(Result);
        }