/// <summary> /// Splits a rect into a series of columns. /// </summary> public static Rect[] Columns(this HUMMath.Data.SplitInto into, int count) { var averageHeight = (into.split.rect.height / count); var list = new List <Rect>(); for (int i = 0; i < count; i++) { Rect output = new Rect( into.split.rect.x, into.split.rect.y + (averageHeight * i), into.split.rect.width, averageHeight ); list.Add(output); } return(list.ToArray()); }
/// <summary> /// Splits a rect into a multidimensional arrary of individual rects. /// </summary> public static Rect[,] Grid(this HUMMath.Data.SplitInto into, int columns, int rows) { var averageHeight = (into.split.rect.height / rows); var averageWidth = (into.split.rect.width / columns); Rect[,] rects = (Rect[, ])Array.CreateInstance(typeof(Rect), columns, rows); for (int x = 0; x < columns; x++) { for (int y = 0; y < rows; y++) { var rect = new Rect( into.split.rect.x + (averageWidth * x), into.split.rect.y + (averageHeight * y), averageWidth, averageHeight ); rects[x, y] = rect; } } return(rects); }