示例#1
0
 /// <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>();
 }
示例#2
0
        /// <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;
        }
示例#3
0
        public static void Init()
        {
            Balise = new Balise();

            PositionCibleGros = Robots.GrosRobot.Position.Coordonnees;
        }