Exemple #1
0
        public void escalaXYZ(double Sx, double Sy)
        {
            Transformacao4D matrizScale = new Transformacao4D();

            matrizScale.atribuirEscala(Sx, Sy, 1.0);
            matriz = matrizScale.transformMatrix(matriz);
        }
Exemple #2
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 #3
0
        /// <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();
        }