/// <summary> /// Constructeur /// </summary> /// <param name="balise">Balise concernée</param> public BaliseStats(Balise balise) { Balise = balise; Balise.PositionsChange += new Balise.PositionsChangeDelegate(Balise_PositionsChange); NombreMessagesRecus = 0; AnglesMesures1 = new List<double>(); DistancesMesures1 = new List<double>(); AnglesMesures2 = new List<double>(); DistancesMesures2 = new List<double>(); ValeursPWM = new List<double>(); }
/// <summary> /// Constructeur /// </summary> /// <param name="balise">Balise ayant émis cette mesure</param> /// <param name="angleDebut">Début de l'angle mesuré</param> /// <param name="angleFin">Fin de l'angle mesuré</param> public DetectionBalise(Balise balise, double angleDebut, double angleFin) { AngleDebut = angleDebut; AngleFin = angleFin; AngleCentral = (angleDebut + angleFin ) / 2; Distance = AngleVisibleToDistance(Math.Abs(AngleFin - AngleDebut)); // Bornes if (Distance > Plateau.LongueurPlateau) Distance = Plateau.LongueurPlateau; if (Distance < 1) Distance = 1; // Un peu de trigo pas bien compliquée double xPoint = balise.Position.Coordonnees.X + Math.Cos(Maths.DegreeToRadian(AngleCentral)) * Distance; double yPoint = balise.Position.Coordonnees.Y + Math.Sin(Maths.DegreeToRadian(AngleCentral)) * Distance; Position = new PointReel(xPoint, yPoint); Balise = balise; }
public static void Init() { Balise = new Balise(); PositionCibleGros = Robots.GrosRobot.Position.Coordonnees; }