private static System.Drawing.Point[] ToPointsArray(List<IntPoint> corners) { var points = new System.Drawing.Point[corners.Count]; for (var i = 0; i < points.Length; i++) { points[i] = new System.Drawing.Point(corners[i].X, corners[i].Y); } return points; }
/// <summary> /// Converts <see cref="System.Drawing.PointF"/> to the <see cref="AForge.Point"/>. /// </summary> /// <param name="point"><see cref="System.Drawing.PointF"/></param> /// <returns><see cref="AForge.Point"/></returns> public static PointF ToPt(this System.Drawing.PointF point) { return(new PointF(point.X, point.Y)); }
public static void DebugPlotVectorOnMap(CurrentGameState state, System.Drawing.Point[] points = null) { if (state.FriendlyHeroes == null) return; var src = GrabScreenGDI(gameScreen); //var thresholded = ThresholdCropBitmap(src, new Rectangle(1450, 775, 450, 350), 200); var sourceImage = ChangePixelFormat(src, PixelFormat.Format24bppRgb); src.Dispose(); var gc = Graphics.FromImage(sourceImage); var greenBrush = new SolidBrush(Color.Lime); var redBrush = new SolidBrush(Color.Red); var font = new Font(SystemFonts.DefaultFont.FontFamily, 50); foreach (var point in state.TowersFound) { gc.DrawString("T", font, redBrush, point.X, point.Y); } foreach (var point in state.EnemyHeroes) { gc.DrawString("H", font, redBrush, point.Position.X, point.Position.Y); } foreach (var point in state.FriendlyHeroes) gc.DrawString("H", font, greenBrush, point.Position.X, point.Position.Y); foreach (var point in state.EnemyCreepsNearby) gc.DrawString("C", font, redBrush, point.X, point.Y); foreach (var point in state.FriendlyCreepsNearby) gc.DrawString("C", font, greenBrush, point.X, point.Y); try { var pp = new System.Drawing.Point(); foreach (var p in points) { gc.DrawEllipse(new Pen(Color.Magenta), p.X - 4, p.Y - 4, 8, 8); if (!pp.IsEmpty) gc.DrawLine(new Pen(Color.Lime), pp, p); pp = p; } } catch (Exception e) { } gc.Dispose(); sourceImage.Save("./debug/ss.png"); sourceImage.Dispose(); }