/// <summary> /// Обрезает в r1 область высотой r2, снизу. /// </summary> /// <param name="r1"></param> /// <param name="r2"></param> /// <returns></returns> public static GRectangle DeleteBottom(GRectangle r1, GRectangle r2) { GRectangle res = new GRectangle(); res.X = r1.X; res.Y = r1.Y; res.Width = r1.Width; res.Height = r1.Height - r2.Height; return(res); }
/// <summary> /// Обьединяет две прямоугольные области /// </summary> /// <param name="r1"></param> /// <param name="r2"></param> /// <returns></returns> public static GRectangle Join(GRectangle r1, GRectangle r2) { GRectangle res = new GRectangle(); res.X = r1.X < r2.X ? r1.X : r2.X; res.Y = r1.Y < r2.Y ? r1.Y : r2.Y; res.Width = r1.X + r1.Width > r2.X + r2.Width ? r1.X + r1.Width - res.X : r2.X + r2.Width - res.X; res.Height = r1.X + r1.Height > r2.Y + r2.Height ? r1.Y + r1.Height - res.Y : r2.Y + r2.Height - res.Y; return(res); }
/// <summary> /// Выделить область прямоугольную, снизу в текущем прямоугольнике, указанной высоты. /// </summary> /// <param name="mainRect"></param> /// <param name="height"></param> /// <returns></returns> public static GRectangle GetBottom(GRectangle mainRect, int height) { GRectangle res = new GRectangle(); res.X = mainRect.X; res.Y = mainRect.Y + mainRect.Height - height; res.Width = mainRect.Width; res.Height = height; return(res); }
public static GRectangle AttachRight(GRectangle r1, int Width) { GRectangle res = new GRectangle(); res.X = r1.X; res.Y = r1.Y; res.Width = r1.Width + Width; res.Height = r1.Height; return(res); }
/// <summary> /// Выделить область прямоугольную, справа в текущем прямоугольнике, указанной ширины. /// </summary> /// <param name="mainRetc"></param> /// <param name="width"></param> /// <returns></returns> public static GRectangle GetRight(GRectangle mainRect, int width) { GRectangle res = new GRectangle(); res.X = mainRect.X + mainRect.Width - width; res.Y = mainRect.Y; res.Width = width; res.Height = mainRect.Height; mainRect.Width -= width; return(res); }