Example #1
0
        public static Aplicador extraerAplicador(string[] fid, int lineaInicio)
        {
            int       indNombre = Extraer.buscarSubStringEnFid(fid, "Points: ", lineaInicio);
            int       finTotal  = Array.IndexOf(fid, "", lineaInicio);
            Aplicador aplicador = new Aplicador()
            {
                nombre  = (fid[indNombre].Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries))[1],
                fuentes = new List <Fuente>(),
            };

            int inicio = indNombre + 2;
            int fin    = Extraer.buscarSubStringEnFid(fid, "Points: ", inicio) - 1;

            if (fin == -1)
            {
                fin = finTotal - 1;
            }
            for (int i = inicio; i < fin + 1; i++)
            {
                string   aux    = fid[i];
                string[] partes = aux.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                Fuente   fuente = Fuente.extraer(partes);
                aplicador.fuentes.Add(fuente);
            }
            aplicador.numeroFuentes = aplicador.fuentes.Count();
            return(aplicador);
        }
Example #2
0
        public static double tasaDosisPuntoFuente(Aplicador ap, Fuente f, PuntoDosis p, TablaHyT tabla)
        {
            double H = paramH(ap, f, p);
            double T = paramT(ap, f, p);

            return(tasaDosisHT(H, T, tabla));
        }
Example #3
0
        public static Fuente extraer(string[] partes)
        {
            Fuente fuente = new Fuente()
            {
                posicion = new Vector()
                {
                    x = Convert.ToDouble(partes[0]),
                    y = Convert.ToDouble(partes[1]),
                    z = Convert.ToDouble(partes[2]),
                },
                tiempo = Convert.ToDouble(partes[5]), //tiempo
            };

            return(fuente);
        }
Example #4
0
        public static Vector dF(Aplicador aplicador, Fuente fuente)
        {
            Vector directorFuente = new Vector();
            int    indiceFuente   = aplicador.fuentes.IndexOf(fuente);

            if (indiceFuente == 0)
            {
                directorFuente = difEntreFuentes(aplicador.fuentes[indiceFuente], aplicador.fuentes[indiceFuente + 1]);
            }
            else if (indiceFuente == aplicador.fuentes.Count() - 1)
            {
                directorFuente = difEntreFuentes(aplicador.fuentes[indiceFuente - 1], aplicador.fuentes[indiceFuente]);
            }
            else
            {
                Vector director1 = difEntreFuentes(aplicador.fuentes[indiceFuente], aplicador.fuentes[indiceFuente + 1]);
                Vector director2 = difEntreFuentes(aplicador.fuentes[indiceFuente - 1], aplicador.fuentes[indiceFuente]);
                directorFuente = Vector.promedio(director1, director2);
            }
            return(directorFuente);
        }
Example #5
0
 public static double paramH(Aplicador ap, Fuente f, PuntoDosis p)
 {
     return(Math.Sqrt(Math.Pow(distanciaFuentePunto(f, p), 2) - Math.Pow(paramT(ap, f, p), 2)));
 }
Example #6
0
 public static double paramT(Aplicador ap, Fuente f, PuntoDosis p)
 {
     return(Vector.productoEscalar(vectorDistanciaFuentePunto(f, p), directorFuente(ap, f)));
 }
Example #7
0
 public static Vector difEntreFuentes(Fuente p1, Fuente p2)
 {
     return(Vector.resta(p1.posicion, p2.posicion));
 }
Example #8
0
 public static double dosisPuntoFuente(Aplicador ap, Fuente f, PuntoDosis p, TablaHyT tabla)
 {
     return(tasaDosisPuntoFuente(ap, f, p, tabla) * f.tiempo * tabla.factor);
 }
Example #9
0
 public static double distanciaFuentePunto(Fuente f, PuntoDosis p)
 {
     return(Vector.modulo(vectorDistanciaFuentePunto(f, p)));
 }
Example #10
0
 public static Vector vectorDistanciaFuentePunto(Fuente f, PuntoDosis p)
 {
     return(Vector.resta(p.posicion, f.posicion));
 }