0

オブジェクトを画面の中心に正確に配置しようとしています。画面は 320X480 で、

オブジェクトは 25X25 です。私がすでに構築しようとしたアルゴリズムは、次の疑似関数コードです。

void (int x, int y, int object ){

int position = (x-y)/2;

Update_X(object ,  position);

}

しかし、それはX軸の中央にのみ配置され、Y軸も中央に配置したい. どうすれば

それを行う??C または C++ で使用できるアルゴリズムはありますか?

4

1 に答える 1

4

基本的な「センタリング方程式」は次のとおりです。

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++ では、除算は整数に対して行われるため、整数演算を使用するだけでこれが自動的に取得されます。

于 2013-04-13T20:33:27.833 に答える