画像の元の縦横比を維持しようとしながら、ユーザーが画像のサイズを変更できるようにしています。
サイズ変更操作ごとに、幅と高さの変更を示す「オフセット」変数があります。これはマウスの動きに基づいているため、サイズ変更中にマウスをどれだけ動かしたかに応じて、値の任意の組み合わせになる可能性があります。
私が今行っているのは、2 つの値 (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 の「オフセット」値を変更してそれを行う方法がわかりません。