public void onDrawPolyline(object sender, DrawPolylineEventArgs s) { polyline = new List <PolyligneDessin>(); //foreach (PolyligneDessin p in s.ListPolyligne) for (int a = 0; a < s.ListPolyligne.Count; a++) { PolyligneDessin p = s.ListPolyligne[a]; for (int i = 0; i < p.ListePoint.Count; i++) { PointDessin pdtmp = p.ListePoint[i]; pdtmp.X = (int)(pdtmp.X / ratioCmParPixel[0]); pdtmp.Y = (int)(pdtmp.Y / ratioCmParPixel[1]); p.ListePoint[i] = pdtmp; } polyline.Add(p); } //polyline = s.ListPolyligne; }
public void UpdateImageDebug() { if (_Follower.TrackMaker != null && _Follower.TrackMaker.ZoneTravail.B.X != 0) { List <PolyligneDessin> ListePoly = new List <PolyligneDessin>(); // Liste envoyé a l'image Bitmap bitmap = new Bitmap(_Follower.TrackMaker.ZoneTravail.B.X, _Follower.TrackMaker.ZoneTravail.B.Y); //dessinerTrack(bitmap, tr); // Dessiner Cubes // foreach (Objectif obstacle in _Follower.TrackMaker.Cubes) for (int i = 0; i < _Follower.TrackMaker.Cubes.Count; i++) { Objectif obstacle = _Follower.TrackMaker.Cubes[i]; PolyligneDessin p = new PolyligneDessin(Color.LimeGreen); for (int x = obstacle.position.X - 5; x <= obstacle.position.X + 5; x++) { for (int y = obstacle.position.Y - 5; y <= obstacle.position.Y + 5; y++) { p.addPoint(new PointDessin(x, y)); } } ListePoly.Add(p); dessinerPoint(bitmap, obstacle.position, Brushes.Gray); } foreach (QuadrillageCoord q in _Follower.TrackMaker.CreerAstarQuadriallage().CalculerQuadrillage()) { PolyligneDessin p = new PolyligneDessin(Color.Gray); p.addPoint(new PointDessin(q.A.X, q.A.Y)); p.addPoint(new PointDessin(q.B.X, q.B.Y)); ListePoly.Add(p); dessinerLigne(bitmap, q.A, q.B, Color.Gray, 1); } for (int i = 0; i < _Follower.TrackMaker.ZonesDepose.Count; i++) { Zone z = _Follower.TrackMaker.ZonesDepose[i]; PositionElement pos = UtilsMath.CentreRectangle(z.position); PolyligneDessin p = new PolyligneDessin(Color.Pink); for (int x = pos.X - 5; x <= pos.X + 5; x++) { for (int y = pos.Y - 5; y <= pos.Y + 5; y++) { p.addPoint(new PointDessin(x, y)); } } ListePoly.Add(p); dessinerPoint(bitmap, pos, Brushes.Pink); } for (int ab = 0; ab < _Follower.ListArduino.Count; ab++) //foreach (ArduinoBotIA robot in _Follower.ListArduino) { ArduinoBotIA robot = _Follower.ListArduino[ab]; PolyligneDessin p = new PolyligneDessin(Color.Purple); PositionElement pos = robot.Position; for (int x = pos.X - 5; x <= pos.X + 5; x++) { for (int y = pos.Y - 5; y <= pos.Y + 5; y++) { p.addPoint(new PointDessin(x, y)); } } ListePoly.Add(p); dessinerPoint(bitmap, pos, Brushes.Turquoise); if (robot.Trace != null) { dessinerTrack(bitmap, robot.Trace, _Follower.TrackMaker.CreerAstarQuadriallage()); PolyligneDessin p2 = new PolyligneDessin(Color.Red); for (int i = 0; i < robot.Trace.Positions.Count; i++) { p.addPoint(new PointDessin(robot.Trace.Positions[i].X, robot.Trace.Positions[i].Y)); } ListePoly.Add(p2); } } imageDebug.Image = bitmap; if (DrawPolylineEvent != null) { DrawPolylineEventArgs args = new DrawPolylineEventArgs(ListePoly); DrawPolylineEvent(this, args); } } }