Exemple #1
0
        public void translacaoXYZ(double tx, double ty, double tz)
        {
            Transformacao4D matrizTranslate = new Transformacao4D();

            matrizTranslate.atribuirTranslacao(tx, ty, tz);
            matriz = matrizTranslate.transformMatrix(matriz);
        }
Exemple #2
0
        public void escalaXYZ(double Sx, double Sy)
        {
            Transformacao4D matrizScale = new Transformacao4D();

            matrizScale.atribuirEscala(Sx, Sy, 1.0);
            matriz = matrizScale.transformMatrix(matriz);
        }
Exemple #3
0
        public Transformacao4D transformMatrix(Transformacao4D t)
        {
            Transformacao4D result = new Transformacao4D();

            for (int i = 0; i < 16; ++i)
            {
                result.matriz[i] =
                    matriz[i % 4] * t.matriz[i / 4 * 4] + matriz[(i % 4) + 4] * t.matriz[i / 4 * 4 + 1]
                    + matriz[(i % 4) + 8] * t.matriz[i / 4 * 4 + 2] + matriz[(i % 4) + 12] * t.matriz[i / 4 * 4 + 3];
            }
            return(result);
        }
Exemple #4
0
        public void rotacaoZPtoFixo(double angulo, Ponto4D ptoFixo)
        {
            matrizGlobal.atribuirIdentidade();

            matrizTmpTranslacao.atribuirTranslacao(ptoFixo.X, ptoFixo.Y, ptoFixo.Z);
            matrizGlobal = matrizTmpTranslacao.transformMatrix(matrizGlobal);

            matrizTmpRotacao.atribuirRotacaoZ(Transformacao4D.DEG_TO_RAD * angulo);
            matrizGlobal = matrizTmpRotacao.transformMatrix(matrizGlobal);

            ptoFixo.inverterSinal();
            matrizTmpTranslacaoInversa.atribuirTranslacao(ptoFixo.X, ptoFixo.Y, ptoFixo.Z);
            matrizGlobal = matrizTmpTranslacaoInversa.transformMatrix(matrizGlobal);

            matriz = matriz.transformMatrix(matrizGlobal);
        }
Exemple #5
0
        public void escalaXYZPtoFixo(double escala, Ponto4D ptoFixo)
        {
            matrizGlobal.atribuirIdentidade();

            matrizTmpTranslacao.atribuirTranslacao(ptoFixo.X, ptoFixo.Y, ptoFixo.Z);
            matrizGlobal = matrizTmpTranslacao.transformMatrix(matrizGlobal);

            matrizTmpEscala.atribuirEscala(escala, escala, 1.0);
            matrizGlobal = matrizTmpEscala.transformMatrix(matrizGlobal);

            ptoFixo.inverterSinal();
            matrizTmpTranslacaoInversa.atribuirTranslacao(ptoFixo.X, ptoFixo.Y, ptoFixo.Z);
            matrizGlobal = matrizTmpTranslacaoInversa.transformMatrix(matrizGlobal);

            matriz = matriz.transformMatrix(matrizGlobal);
        }
Exemple #6
0
 public void rotacaoZ(double angulo)
 {
     matrizTmpRotacao.atribuirRotacaoZ(Transformacao4D.DEG_TO_RAD * angulo);
     matriz = matrizTmpRotacao.transformMatrix(matriz);
 }