示例#1
0
        public static Rectangle TransformForSize(this Rectangle rectangle, Size size, Size baseSize, Offsets offsets)
        {
            var(fx, fy) = size.ApplyOffsets(offsets).GetTransformKoefs(baseSize.ApplyOffsets(offsets));

            var rect = rectangle.ApplyOffsets(offsets);

            var x1 = ToInt(rect.X * fx);
            var y1 = ToInt(rect.Y * fy);
            var x2 = ToInt((rect.X + rectangle.Width) * fx);
            var y2 = ToInt((rect.Y + rectangle.Height) * fy);

            return(new Rectangle(x1, y1, x2 - x1, y2 - y1).ReturnOffsets(offsets));
        }