private static Rectangle GetBoundingRectangle(Vector2 tl, Vector2 tr, Vector2 bl, Vector2 br) { // Find the minimum and maximum "corners" based on the given vectors float minX = MathF.Min(tl.X, MathF.Min(tr.X, MathF.Min(bl.X, br.X))); float maxX = MathF.Max(tl.X, MathF.Max(tr.X, MathF.Max(bl.X, br.X))); float minY = MathF.Min(tl.Y, MathF.Min(tr.Y, MathF.Min(bl.Y, br.Y))); float maxY = MathF.Max(tl.Y, MathF.Max(tr.Y, MathF.Max(bl.Y, br.Y))); float sizeX = maxX - minX + .5F; float sizeY = maxY - minY + .5F; return(new Rectangle((int)(MathF.Ceiling(minX) - .5F), (int)(MathF.Ceiling(minY) - .5F), (int)MathF.Floor(sizeX), (int)MathF.Floor(sizeY))); }
public static Size Ceiling(SizeF size) => new Size(unchecked ((int)MathF.Ceiling(size.Width)), unchecked ((int)MathF.Ceiling(size.Height)));
public static Point Ceiling(PointF point) => new Point(unchecked ((int)MathF.Ceiling(point.X)), unchecked ((int)MathF.Ceiling(point.Y)));