Пример #1
0
        public static NyARMat matrixAllocMul(NyARMat a, NyARMat b)
        {
            NyARException.trap("未チェックのパス");
            NyARMat dest = new NyARMat(a.row, b.clm);

            NyARException.trap("未チェックのパス");
            dest.matrixMul(a, b);
            return(dest);
        }
        public void set2dVertex(NyARDoublePoint2d[] i_ref_vertex_2d, int i_number_of_vertex)
        {
            Debug.Assert(i_number_of_vertex == 4);
            double[] cx      = this._cx;
            double[] cy      = this._cy;
            double   cpara02 = this._projection_mat.m02;
            double   cpara12 = this._projection_mat.m12;
            NyARMat  mat_t   = this._mat_t;

            double[][] mata  = this._mat_a.getArray();
            double[][] matat = this._mat_at.getArray();
            for (int i = 0; i < 4; i++)
            {
                cx[i] = i_ref_vertex_2d[i].x;
                cy[i] = i_ref_vertex_2d[i].y;
                int x2 = i * 2;
                mata[x2][2]     = matat[2][x2] = cpara02 - i_ref_vertex_2d[i].x;     // mat_a->m[j*6+2]=mat_b->m[num*4+j*2]=cpara[0][2]-pos2d[j][0];
                mata[x2 + 1][2] = matat[2][x2 + 1] = cpara12 - i_ref_vertex_2d[i].y; // mat_a->m[j*6+5]=mat_b->m[num*4+j*2+1]=cpara[1][2]-pos2d[j][1];
            }
            //T(3x3行列)の作成
            mat_t.matrixMul(this._mat_at, this._mat_a);
            mat_t.matrixSelfInv();
            return;
        }
Пример #3
0
 public static NyARMat matrixAllocMul(NyARMat a, NyARMat b)
 {
     NyARException.trap("未チェックのパス");
     NyARMat dest = new NyARMat(a.row, b.clm);
     NyARException.trap("未チェックのパス");
     dest.matrixMul(a, b);
     return dest;
 }