我正在允许用户调整图像大小,同时试图保持原始宽高比。
对于每个调整操作,我有一个“偏移”变量,用于指示宽度和高度的变化。这取决于鼠标移动的距离,因此可能是任意组合的值,取决于他们在调整大小时移动了多少。
现在我正在取两个值中的较大值(x和y的变化),并使用相同宽高比来计算其他值。以下是我的代码:
对于每个调整操作,我有一个“偏移”变量,用于指示宽度和高度的变化。这取决于鼠标移动的距离,因此可能是任意组合的值,取决于他们在调整大小时移动了多少。
现在我正在取两个值中的较大值(x和y的变化),并使用相同宽高比来计算其他值。以下是我的代码:
if (Math.Abs(offset.X) > Math.Abs(offset.Y))
{
offset.Y = (int)(offset.X / AspectRatio);
}
else
{
offset.X = (int)(offset.Y * AspectRatio);
}
纵横比是标准的宽/高值。
我的代码问题在于它使用整数值,所以它会四舍五入并导致纵横比扭曲。
我认为我需要做的是将其捕捉到可以被纵横比均匀整除的整数值,或者类似这样的方法。但我不知道如何通过修改这些x和y “偏移”值来实现。