private void btn_test_Click(object sender, EventArgs e) { PositionElement pStart = new PositionElement(); pStart.X = 30; pStart.Y = 550; PositionElement pEnd = new PositionElement(); pEnd.X = 30; pEnd.Y = 30; PositionZoneTravail pZone = new PositionZoneTravail(); pZone.A.X = 0; pZone.A.Y = 0; pZone.B.X = 800; pZone.B.Y = 600; //AStar astar = new AStar(pStart, pEnd, pZone); //Track tr = astar.CalculerTrajectoire(); Bitmap bitmap = new Bitmap(pZone.B.X, pZone.B.Y); //dessinerTrack(bitmap, tr.Positions); pictureBox1.Image = bitmap; /* Point c = new Point(pEnd.X, pEnd.Y); * dessinerPoint(bitmap, c, Brushes.Red); * * c = new Point(pStart.X, pStart.Y); * dessinerPoint(bitmap, c, Brushes.Green);*/ }
/* Fonction zone de travail */ private void UpdateTailleTerain(int x, int y) { PositionZoneTravail Pzt = new PositionZoneTravail(); Pzt.A.X = 0; Pzt.A.Y = 0; Pzt.B.X = x; Pzt.B.Y = y; envoieListe(Pzt); }
private void envoieListe(PositionZoneTravail PositionTravail) { if (OnUpdatePositionZoneTravail == null) { return; } UpdatePositionZoneTravailEventArgs a = new UpdatePositionZoneTravailEventArgs(PositionTravail); OnUpdatePositionZoneTravail(this, a); }
public AStar(PositionElement Depart, PositionElement Arrivee, PositionZoneTravail ZoneTravail) { _open = new SortedNodeList <ASCase>(); _close = new NodeList <ASCase>(); _UnitByCol = (float)Math.Abs(ZoneTravail.A.X - ZoneTravail.B.X) / _NumCol; _UnitByRow = (float)Math.Abs(ZoneTravail.A.Y - ZoneTravail.B.Y) / _NumRow; _map = new ASMap(_NumCol, _NumRow); ASCase Start = ConvertToCase(Depart); ASCase End = ConvertToCase(Arrivee); _map.setStart(Start.Point.X, Start.Point.Y); _map.setEnd(End.Point.X, End.Point.Y); }
public void SetZoneTravail(PositionZoneTravail position) { this._ZoneTravail = position; }
public void UpdatePositionZoneTravail(PositionZoneTravail Zone) { _bInfosZoneTravail = true; _TrackMaker.SetZoneTravail(Zone); tickIA(); }
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; }