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); }