Example #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
            });
        }
    }
Example #2
0
        public void TresEnLineaFailTest()
        {
            var pplaneta0 = new Posicion {
                X = 5, Y = 111
            };
            var pplaneta1 = new Posicion {
                X = 200, Y = -100
            };
            var pplaneta2 = new Posicion {
                X = -250, Y = 100
            };

            var result = Trigonometry.Colinealidad(pplaneta0, pplaneta1, pplaneta2, delta);

            Assert.AreEqual(false, result, "No están en linea.");
        }
Example #3
0
        public void CuatroEnLinea2Test()
        {
            var pplaneta0 = new Posicion {
                X = -1000, Y = 0
            };
            var pplaneta1 = new Posicion {
                X = 500, Y = 0
            };
            var pplaneta2 = new Posicion {
                X = 2000, Y = 0
            };
            var pSol = new Posicion {
                X = 0, Y = 0
            };

            var result1 = Trigonometry.Colinealidad(pplaneta0, pplaneta1, pplaneta2, delta);
            var result2 = Trigonometry.Colinealidad(pplaneta0, pplaneta1, pSol, delta);

            Assert.AreEqual(true, result1 && result2, "Los 4 están en linea.");
        }