public void translacaoXYZ(double tx, double ty, double tz) { Transformacao4D matrizTranslate = new Transformacao4D(); matrizTranslate.atribuirTranslacao(tx, ty, tz); matriz = matrizTranslate.transformMatrix(matriz); }
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); }
/// <summary> /// efetua a translação do poligono e atualiza a bbox /// </summary> /// <param name="translX"></param> /// <param name="translY"></param> public void Translation(double translX, double translY) { var transl = new Transformacao4D(); transl.atribuirTranslacao(translX, translY, 0); this.transformacao = transl.transformMatrix(this.transformacao); this.UpdateBBox(); }
/// <summary> /// Rotaciona o poligono ++ /// </summary> /// <param name="degreeFactor"></param> public void Rotate(double degreeFactor) { var translX = this.Bbox.centerX; var translY = this.Bbox.centerY; var originTrans = new Transformacao4D(); originTrans.atribuirTranslacao(translX, translY, 0); var rotationTrans = new Transformacao4D(); rotationTrans.atribuirRotacaoZ(Transformacao4D.DEG_TO_RAD * degreeFactor); var initialPositionTrans = new Transformacao4D(); initialPositionTrans.atribuirTranslacao(-translX, -translY, 0); var result = originTrans.transformMatrix(rotationTrans); result = result.transformMatrix(initialPositionTrans); this.transformacao = result.transformMatrix(this.transformacao); this.UpdateBBox(); }
/// <summary> /// Altera a escala do poligono ++ /// </summary> /// <param name="scale"></param> public void Scale(double scale) { var translX = this.Bbox.centerX; var translY = this.Bbox.centerY; var originTrans = new Transformacao4D(); originTrans.atribuirTranslacao(translX, translY, 0); var scaleTrans = new Transformacao4D(); scaleTrans.atribuirEscala(scale, scale, 1); var initialPositionTrans = new Transformacao4D(); initialPositionTrans.atribuirTranslacao(-translX, -translY, 0); var result = originTrans.transformMatrix(scaleTrans); result = result.transformMatrix(initialPositionTrans); this.transformacao = result.transformMatrix(this.transformacao); this.UpdateBBox(); }