图片在固定的矩形框中进行旋转,保证图片高和宽比例不变,求图片缩放比例

该代码提供了一个方法,用于根据给定的Grid尺寸、Image初始尺寸、旋转角度等参数,计算并输出旋转和缩放后的比例,以便在UI布局中适应新的尺寸要求。
/// <summary>
        /// 通过输入的Grid尺寸和Image尺寸,计算缩放比例
        /// </summary>
        /// <param name="rectangleWidth">Grid宽度</param>
        /// <param name="rectangleHeight">Grid高度</param>
        /// <param name="initialWidth">Image宽度</param>
        /// <param name="initialHeight">Image宽度</param>
        /// <param name="angle">旋转角度</param>
        /// <param name="scaleX">X缩放比例</param>
        /// <param name="scaleY">Y缩放比例</param>
        public static void CalculateScaling(double rectangleWidth, double rectangleHeight, double initialWidth, double initialHeight, double angle, ref double scaleX, ref double scaleY)
        {
            double radians = angle * Math.PI / 180; // 将角度转换为弧度
            double cosValue = Math.Abs(Math.Cos(radians));
            double sinValue = Math.Abs(Math.Sin(radians));

            // 计算旋转后的宽度和高度
            double rotatedWidth = initialWidth * cosValue + initialHeight * sinValue;
            double rotatedHeight = initialHeight * cosValue + initialWidth * sinValue;

            // 计算缩放比例
            scaleX = rectangleWidth / rotatedWidth;
            scaleY = rectangleHeight / rotatedHeight;

            scaleX = initialWidth / rotatedWidth;
            scaleY = initialHeight / rotatedHeight;

            // 输出缩放比例
            Console.WriteLine($"Angle: {angle}°, Scale X: {scaleX}, Scale Y: {scaleY}");
        }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值