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 }); } }
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."); }
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."); }