private void pictureBox1_Click(object sender, MouseEventArgs e) { int abs = (e.Location.X * ((PictureBox)sender).Image.Width) / ((PictureBox)sender).Width; int ord = (e.Location.Y * ((PictureBox)sender).Image.Height) / ((PictureBox)sender).Height; //Logger.GlobalLogger.debug("ABS : " + abs + " ORD : " + ord); if (e.Button == MouseButtons.Left) { pEnd.X = abs; pEnd.Y = ord; } else if (e.Button == MouseButtons.Right) { pStart.X = abs; pStart.Y = ord; } else if (e.Button == MouseButtons.Middle) { PositionElement pObstacle = new PositionElement(); pObstacle.X = abs; pObstacle.Y = ord; pAutre.Add(pObstacle); } PositionZoneTravail pZone = new PositionZoneTravail(); pZone.A.X = 0; pZone.A.Y = 0; pZone.B.X = 800; pZone.B.Y = 600; astar = new AStar(pStart, pEnd, pZone); astar.AddObstacles(pAutre); DateTime dt1 = DateTime.Now; Track tr = astar.CalculerTrajectoire(); DateTime dt2 = DateTime.Now; Logger.GlobalLogger.info("Temps calcul : " + (dt2 - dt1).Milliseconds); //Track tr = astar.CalculerTrajectoire(); tr.nettoyerTrajectoire(); List <QuadrillageCoord> quad = astar.CalculerQuadrillage(); Bitmap bitmap = new Bitmap(pZone.B.X, pZone.B.Y); dessinerTrack(bitmap, tr); Point c = new Point(pEnd.X, pEnd.Y); //dessinerPoint(bitmap, c, Brushes.Red); dessinerRectangle(bitmap, astar.CalculerRectangle(pEnd), Brushes.Red); c = new Point(pStart.X, pStart.Y); //dessinerPoint(bitmap, c, Brushes.Green); dessinerRectangle(bitmap, astar.CalculerRectangle(pStart), Brushes.Green); foreach (PositionElement obstacle in pAutre) { dessinerRectangle(bitmap, astar.CalculerRectangle(obstacle), Brushes.Gray); //dessinerPoint(bitmap, c, Brushes.Gray); } foreach (QuadrillageCoord q in quad) { dessinerLigne(bitmap, q.A, q.B, Color.Gray, 1); } pictureBox1.Image = bitmap; }