私はソース矩形とデスティネーション矩形を持っています。デスティネーション矩形内でフィッティングしながらソースをスケーリングできる最大スケールと、元のアスペクト比を維持するを見つける必要があります。1つの矩形を他の矩形内で可能な最大サイズに尺度変更するにはどうすればよいですか?
Googleが見つけたのはoneですが、すべてのケースで機能するかどうかはわかりません。ここに私の自家製ソリューションがあります:
- 各矩形の高さ/幅を計算します。これにより、対角線の傾きは
msrc
とmdest
になります。 msrc < mdst
、スケールソース場合幅によって先に高(スケール幅に合わせて幅スケールソース高、- そうでない場合には(スケール高同じ比率で)先にフィットします同じ比率)
この問題の他の解決策をお探しですか?私のアルゴリズムがすべての場合に機能するかどうかはわかりません!
甘い!スケールを取得したら、次のようにして最終的な寸法を取得します: 'width = src.width * scale'と 'height = src.height * scale' –
目的地全体をカバーしたい場合はmaxをminに変更します。 – Glogo
同じ解決策ですが、私にはより明確な名前があります: 'scale = min(maxWidth/actualWidth、maxHeight/actualHeight)'、 'newWidth = actualWidth * scale'、' newHeight = actualHeight * scale' –