예제 #1
0
        } // void descentraliza()

        /// <summary>
        /// rotaciona o Gzimo eixos em um determinado plano (XZ,YZ ou XY).
        /// </summary>
        /// <param name="omega">ângulo para rotacionar o plano parâmetro, deve estar em graus.</param>
        /// <param name="pln">plano para rotacionar.</param>
        public void rotacionaGzimoEixos(double omega, vetor3.planoRotacao pln, vetor3.tipoAngulo typeAngle)
        {
            double omegaX, omegaY, omegaZ;

            omegaX = 0.0;
            omegaY = 0.0;
            omegaZ = 0.0;
            switch (pln)
            {
            case vetor3.planoRotacao.XY:
                omegaX = 0.0;
                omegaY = 0.0;
                omegaZ = omega;
                break;

            case vetor3.planoRotacao.XZ:
                omegaX = 0.0;
                omegaY = omega;
                omegaZ = 0.0;
                break;

            case vetor3.planoRotacao.YZ:
                omegaX = omega;
                omegaY = 0.0;
                omegaZ = 0.0;
                break;
            } // switch
            if (typeAngle == vetor3.tipoAngulo.Relativo)
            {
                // rotaciona os eixos.
                this.eixoXGzimo.rotacionaVetor(omegaY, omegaX, omegaZ);
                this.eixoYGzimo.rotacionaVetor(omegaY, omegaX, omegaZ);
                this.eixoZGzimo.rotacionaVetor(omegaY, omegaX, omegaZ);
                this.eixoXGzimo.normaliza();
                this.eixoYGzimo.normaliza();
                this.eixoZGzimo.normaliza();
            } // if typeAngle
            if (typeAngle == vetor3.tipoAngulo.Absoluto)
            {
                // rotaciona os eixos.
                this.eixoXGzimo.rotacionaVetorAnguloAbsoluto(omegaZ, omegaX, omegaY);
                this.eixoYGzimo.rotacionaVetorAnguloAbsoluto(omegaZ, omegaX, omegaY);
                this.eixoZGzimo.rotacionaVetorAnguloAbsoluto(omegaZ, omegaX, omegaY);
                this.eixoXGzimo.normaliza();
                this.eixoYGzimo.normaliza();
                this.eixoZGzimo.normaliza();
            } // if typeAngle
        }     // rotacionaGzimmoeixos()
예제 #2
0
        }     // encontraAnguloOmega()

        /// <summary>
        /// encontra o ângulo teta (coordenadas esféricas) para um determinado plano (XY,YZ,ou XZ).
        /// </summary>
        /// <param name="plano">plano a obter o ângulo teta.</param>
        /// <returns>retorna o ângulo teta. Por default, encontra o ângulo teta do plano XY.</returns>
        public double encontraAnguloTeta(vetor3.planoRotacao plano)
        {
            switch (plano)
            {
            case planoRotacao.XY:
                return(encontraAnguloTetaPlanoXY());

            case planoRotacao.XZ:
                return(encontraAnguloTetaPlanoXZ());

            case planoRotacao.YZ:
                return(encontraAnguloTetaPlanoYZ());

            default:
                return(encontraAnguloTetaPlanoXY());
            } // switcch
        }     // encontraAnguloTeta()