より大きな/より広い長方形に収まるように長方形をスケーリングする式が必要です。小さな長方形だけを気にする必要があります。
私だけが持っている与えられた値は次のとおりです。
大きな長方形:
- 幅
- 高さ(これは必要ないと思います)
- ポイント (つまり、x、y)
小さな長方形:
- 幅 (実際には読み取り専用ではありませんが、依存します)
- 高さ (読み取り専用)
- スケール(これがどのような値になるかを計算する式が必要です)
- 点
値は画面のピクセルに相対的です。
より大きな/より広い長方形に収まるように長方形をスケーリングする式が必要です。小さな長方形だけを気にする必要があります。
私だけが持っている与えられた値は次のとおりです。
大きな長方形:
小さな長方形:
値は画面のピクセルに相対的です。
scale = min(big.width/small.width, big.height/small.height)
scale
これにより、大きな長方形の内側にある小さな長方形に収まる最大のものが得られるはずです。
探す
a = width1 / height1;
b = width2 / height2;
if(a>b)
{
scale = height1 / height2;
point.y = y; (from big rectangle)
point.x = (width1 - width2 * scale) / 2 + x;
}
else
{
scale = width1 / width2;
point.x = x; (from big rectangle)
point.y = (height1 - height2 * scale) / 2 + y;
}
私が理解していることから、これはあなたが望んでいたことをするはずです。
編集:スケールのみを取得するには、PureWの回答を参照してください。