示例#1
0
        /// <summary>
        /// Constructor de la clase. Está desacoplado al máximo de la clase Atributos, esta clase
        /// ha sido consultada para crear el circulo a la hora de llamar al constructor
        /// </summary>
        /// <param name="indice">Círculo i-ésimo relativo a la minucia a la que él está asociado</param>
        /// <param name="anguloGlobal">Ángulo inferior de la minucia con respecto al origen</param>
        /// <param name="radio">Radio del círculo actual. Viene determinado por el usuario</param>
        /// <param name="numPuntos">Número de puntos que contendrá el círculo actual</param>
        public Circulo(int indice, double anguloGlobal, int radio, int numPuntos, Minucia minucia)
        {
            Atributos atr = Atributos.getInstance();

            this.indice = indice;
            this.anguloGlobal = anguloGlobal;
            this.radio = radio;
            this.numPuntos = numPuntos;

            // minucia a la que está asociada el citado punto
            this.minucia = minucia;

            // array donde guardaremos los puntos asociados al citado círculo
            this.puntos = new Punto[numPuntos];

            // Ahora buscaremos los puntos asociados a cada círculo
            for (int i = 0; i < numPuntos; i++)
            {
                // angulo del punto con respecto al centro de la minucia
                double anguloParcial = get_teta_polar_punto(i);

                // coordenadas globales del nuevo punto
                int nuevox = (int)(radio * Math.Sin((double)anguloParcial)) + minucia.x;
                int nuevoy = (int)(radio * Math.Cos((double)anguloParcial)) + minucia.y;

                puntos[i] = new Punto(nuevox, nuevoy, anguloParcial, minucia);
            }
        }
示例#2
0
 /// <summary>
 /// the orientation at the sampling point is alfa-l,k(−pi/2l,k <pi/2)
 /// </summary>
 /// <param name="indice"></param>
 /// <returns></returns>
 public static double get_relative_orientation(double anguloParcialEnRango, double anguloGlobal)
 {
     return(Punto.lambda(anguloParcialEnRango - anguloGlobal));
 }