高さと幅が整数の場合は、これを行うことができます...
height = height * (int)(scaleFactor*100) / 100;
width = width * (int)(scaleFactor*100) / 100;
あるいは、このソリューションも機能しint
ますが、浮動小数点変数の方が理にかなっています...
height = floor(height * scaleFactor);
width = floor(width * scaleFactor);
または、変数の種類に関係なく、コンパイラに丸めの処理方法を心配させることができます...
height = height * scaleFactor;
width = width * scaleFactor;
...しかし、そのソリューションでは、あるプラットフォームから次のプラットフォームへの丸め誤差が1つずつ発生する可能性があります。ただし、これはユースケースでは問題にならない場合があります。
別の可能性は、あなたscaleFactor
自身がでありint
、(この例では)30%でscaleFactor
ある場合、値30
である可能性があり、これを行うだけです...
height = height * scaleFactor / 100;
width = width * scaleFactor / 100;
重要なのは、x座標とy座標の両方を同じ係数でスケーリングすると、元のアスペクト比が維持されることです。