基本的な「センタリング方程式」は次のとおりです。
center = (total_space - needed) / 2;
これにより、残りのスペースが半分に分割されます。つまり、左側と右側、または上下のスペースが同じになります。位置は、中央に配置されているオブジェクトの「左端」(Y の場合は「上」) の端に相対的であると想定しています。
非常に単純な例として、オブジェクトを14ので水平方向にセンタリングすることを検討しneeded = 6
てください。total_space
(14 - 6) / 2 = 4
したがって、グラフィカル表示を試みます:
needed = 6
/ \
|----XXXXXX----| The 6 X:s are centered,
| | with 4 dashes on either
\ / side. The total space
\ / between the |:s is 14.
\ /
total_space = 14
これは 1次元のみのため、2 回計算する必要があります: X に対して 1 回、Y に対して 1回です。それがディメンションの機能です。:)
したがって、値を差し込むと、次のようになります。
center_x = (320 - 25) / 2 = 147
center_y = (480 - 25) / 2 = 227
切り捨てました。どちらの場合も均等に割り切れないため、丸め方法を選択する必要があります。C および C++ では、除算は整数に対して行われるため、整数演算を使用するだけでこれが自動的に取得されます。