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 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>
        /// 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();
        }
Exemple #4
0
        /// <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();
        }
Exemple #5
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();
        }