示例#1
0
        public static coordonnees calculerPositionEvitement(int longueurRecul,coordonnees coordonneesActuelles)
        {
            double angleRad = coordonneesActuelles.alpha;
            angleRad /= 1000;
            int alphaDegre1 = 90 + (int)Math.convertRadianToDegree(angleRad);
            int xArrive1 = (int)(longueurRecul * Math.cosinus(alphaDegre1) + coordonneesActuelles.x);
            int yArrive1 = (int)(longueurRecul * Math.sinus(alphaDegre1) + coordonneesActuelles.y);

            int alphaDegre2 = -90 + (int)Math.convertRadianToDegree(angleRad);
            int xArrive2 = (int)(longueurRecul * Math.cosinus(alphaDegre2) + coordonneesActuelles.x);
            int yArrive2 = (int)(longueurRecul * Math.sinus(alphaDegre2) + coordonneesActuelles.y);

            double distance1 = (1500 - xArrive1) * (1500 - xArrive1) + (1000 - yArrive1) * (1000 - yArrive1);
            double distance2 = (1500 - xArrive2) * (1500 - xArrive2) + (1000 - yArrive2) * (1000 - yArrive2);

            coordonnees positionEvitement = new coordonnees();
            if (distance1 < distance2) {
                positionEvitement.x = xArrive1;
                positionEvitement.y = yArrive1;
            }
            else {
                positionEvitement.x = xArrive2;
                positionEvitement.y = yArrive2;
            }
            return positionEvitement;
        }
示例#2
0
 public static coordonnees calculerPositionRecul(int longueurRecul, coordonnees coordonneesActuelles, int demiTour)
 {
     coordonnees positionEvitement = new coordonnees();
     double angleRad = coordonneesActuelles.alpha;
     angleRad /= 1000;
     int alphaDegre = 180*demiTour + (int)Math.convertRadianToDegree(angleRad);
     positionEvitement.x = (int)(longueurRecul * Math.cosinus(alphaDegre) + coordonneesActuelles.x);
     positionEvitement.y = (int)(longueurRecul * Math.sinus(alphaDegre) + coordonneesActuelles.y);
     return positionEvitement;
 }