示例#1
0
Matriz Matriz::matrizIdentidade(int tamanho) {
	Matriz matriz = Matriz(tamanho, tamanho);
	for (int i = 0; i < tamanho; ++i) {
		matriz.mat[i][i] = 1.0;
	}

	return matriz;
}
示例#2
0
	void rotacionar(double angulo) {
		Matriz matrizRotacao = MatrizUtil::matrizRotacao3DZ(angulo);
		Matriz matrizVUP = Matriz(vupVector);
		Matriz result = matrizVUP * matrizRotacao;

		vupVector._x = result(0, 0);
		vupVector._y = result(0, 1);

	}
示例#3
0
Matriz Matriz::transpose() {
    Matriz res = Matriz();
    for(int i = 0; i < 4; ++i) {
        for(int j = 0; j < 4; ++j) {
            res.mat[i][j] = mat[j][i];
        }
    }

    return res;
}
示例#4
0
void viewOperations::assembleViewSystem(Vetor &v, Vetor &n, double d, double hx, double hy) {
    Vetor Vortho = n.orthogonalize(v);
    Vortho.normalize();
    n.normalize();
    Vetor U = n%Vortho;

    double coords[4][4] = {{U.x_, U.y_, U.z_, 0.0},
        {Vortho.x_, Vortho.y_, Vortho.z_, 0.0},
        {n.x_, n.y_, n.z_, 0.0},
        {0.0, 0.0, 0.0, 1.0}
    };

    this->camCoords_ =  Matriz(coords);
    this->d = d;
    this->hx = hx;
    this->hy = hy;
}
示例#5
0
Matriz<Tipo> Matriz<Tipo>::submatriz(unsigned iIni , unsigned jIni , unsigned iFim , unsigned jFim)
{
    unsigned t;
	if(iIni > iFim) {t = iIni; iIni = iFim; iFim = t;}
	if(jIni > jFim) {t = jIni; jIni = jFim; jFim = t;}
    if(iFim < m_numeroLinhas && jFim < m_numeroColunas)
	{
		int i , j, mR = iFim - iIni , nR = jFim - jIni;
		Matriz R(mR , nR);
		for ( i = 0; i < mR; i ++)
			for ( j = 0; j < nR; j ++)
				R(i , j) = (*this)(i+iIni , j+jIni);
		return R;
	}else
	{
		printf("Erro Submatriz inexitestente\n" );
		return Matriz (1 ,1);
	}
}