public static int[,] RenderObject(PointF[] points, int[,] takenOrFree, float imageWidth, float imageHeight) { System.Drawing.Point[] boxPoints = new System.Drawing.Point[4]; List <IEnumerable <System.Drawing.Point> > renderObject = new List <IEnumerable <System.Drawing.Point> >(); for (int i = 0; i < points.Length; i++) { boxPoints[i] = WhichBox(points[i], takenOrFree.GetLength(0), takenOrFree.GetLength(1), imageWidth, imageHeight); } boxPoints = boxPoints.OrderBy(s => s.X).ThenBy(s => s.Y).ToArray(); foreach (System.Drawing.Point p in boxPoints) { takenOrFree[p.Y, p.X] = 1; } renderObject.Add(Bresenham.RenderLine(boxPoints[0], boxPoints[1])); renderObject.Add(Bresenham.RenderLine(boxPoints[0], boxPoints[2])); renderObject.Add(Bresenham.RenderLine(boxPoints[1], boxPoints[3])); renderObject.Add(Bresenham.RenderLine(boxPoints[2], boxPoints[3])); foreach (IEnumerable <System.Drawing.Point> po in renderObject) { foreach (System.Drawing.Point p in po) { //System.Console.WriteLine(p.X+" / "+p.Y); takenOrFree[p.Y, p.X] = 1; } } return(takenOrFree); }