public void translacaoXYZ(double tx, double ty, double tz) { Transformacao4D matrizTranslate = new Transformacao4D(); matrizTranslate.atribuirTranslacao(tx, ty, tz); matriz = matrizTranslate.transformMatrix(matriz); }
public void escalaXYZ(double Sx, double Sy) { Transformacao4D matrizScale = new Transformacao4D(); matrizScale.atribuirEscala(Sx, Sy, 1.0); matriz = matrizScale.transformMatrix(matriz); }
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); }
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); }
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); }
public void rotacaoZ(double angulo) { matrizTmpRotacao.atribuirRotacaoZ(Transformacao4D.DEG_TO_RAD * angulo); matriz = matrizTmpRotacao.transformMatrix(matriz); }