将对象置于屏幕正中央

Center an object exactly in the center of the screen

本文关键字:屏幕 对象 于屏幕      更新时间:2023-10-16

我正试图将一个对象正好放在屏幕的中心。屏幕320X480,

对象为25X25。我已经尝试构建的算法是以下伪函数代码:

void (int x, int y, int object ){
int position = (x-y)/2;
Update_X(object ,  position);
}

,但这只会使它在x轴居中,我还想让y轴居中。如何

? ?有没有可以在C或c++中使用的算法?

基本的"定心方程"很简单:

center = (total_space - needed) / 2;

这将剩余的空间分成两半,这意味着它在左边和右边一样多,或者在上面和下面。它假定位置相对于居中对象的"最左"(或"上"为Y)边缘。

举一个非常简单的例子,考虑将具有needed = 6的对象水平居中到total_space为14:

(14 - 6) / 2 = 4

so,尝试图形显示:

    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

这只适用于一维,所以你必须计算两次:一次是X,一次是y。这两个应该是相互独立的从它们是维度这一事实中应该是显而易见的;这就是维度的作用!:)

那么,输入你的值,我们得到:

center_x = (320 - 25) / 2 = 147
center_y = (480 - 25) / 2 = 227

我四舍五入;这两种情况都不能被整除所以你需要选择一个四舍五入的方法。在C和c++中,只要使用整数运算就可以自动得到这个,因为除法是在整数上进行的。