Beispiel #1
0
        public Resultado GetClima(int dia)
        {
            if (Trigonometry.Colinealidad(_planetas[0].GetPosicion(dia), _planetas[1].GetPosicion(dia), _planetas[2].GetPosicion(dia), _deltaColinealidad))
            {
                // Si los 3 planetas están en linea, reemplazo cualquiera de ellos por el sol, y verifico si tmb están en linea.
                if (Trigonometry.Colinealidad(_planetas[0].GetPosicion(dia), _planetas[1].GetPosicion(dia), _sol.GetPosicion(dia), _deltaColinealidad))
                {
                    return new Resultado {
                               Dia = dia, Clima = Constants.Sequia, Lluvia = 0
                    }
                }
                ;

                return(new Resultado {
                    Dia = dia, Clima = Constants.Optimo, Lluvia = 0
                });
            }

            if (Trigonometry.PuntoEnTriangulo(_planetas[0].GetPosicion(dia), _planetas[1].GetPosicion(dia), _planetas[2].GetPosicion(dia), _sol.GetPosicion(dia)))
            {
                return(new Resultado {
                    Dia = dia, Clima = Constants.Lluvia, Lluvia = Trigonometry.GetPerimetro(_planetas[0].GetPosicion(dia), _planetas[1].GetPosicion(dia), _planetas[2].GetPosicion(dia))
                });
            }

            return(new Resultado {
                Dia = dia, Clima = Constants.Confuso, Lluvia = 0
            });
        }
    }