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
            });
        }
    }
Beispiel #2
0
        public void PuntoEnTrianguloFailTest()
        {
            var pplaneta0 = new Posicion {
                X = 766, Y = 700
            };
            var pplaneta1 = new Posicion {
                X = -219, Y = 700
            };
            var pplaneta2 = new Posicion {
                X = -1956, Y = 700
            };
            var pSol = new Posicion {
                X = 0, Y = 0
            };

            var result = Trigonometry.PuntoEnTriangulo(pplaneta0, pplaneta1, pplaneta2, pSol);

            Assert.AreEqual(false, result, "El punto NO está dentro del triangulo.");
        }
Beispiel #3
0
        public void PuntoEnTrianguloTest()
        {
            var pplaneta0 = new Posicion {
                X = 766, Y = 642
            };
            var pplaneta1 = new Posicion {
                X = -219, Y = -449
            };
            var pplaneta2 = new Posicion {
                X = -1956, Y = -415
            };
            var pSol = new Posicion {
                X = 0, Y = 0
            };

            var result = Trigonometry.PuntoEnTriangulo(pplaneta0, pplaneta1, pplaneta2, pSol);

            Assert.AreEqual(true, result, "El punto está dentro del triangulo.");
        }