我正试图将一个物体准确地居中在屏幕的中心。屏幕为320X480和
对象是25X25。我已经尝试构建的算法就是这个伪函数代码:
void (int x, int y, int object ){
int position = (x-y)/2;
Update_X(object , position);
}
但是这只会将它放在X轴中心,我想让Y轴居中。我如何
那样做?有没有可以在C或C ++中使用的算法?
答案 0 :(得分:4)
基本的“定心方程式”很简单:
center = (total_space - needed) / 2;
这将剩下的空间分成两半,这意味着它在左侧和右侧,或上方和下方一样多。它假定位置相对于对中的“最左边”(或Y的“上边缘”)边缘。
对于一个非常简单的示例,考虑将needed = 6
的对象水平居中到total_space
的14:
(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
这仅适用于一个维度,因此您必须计算两次:一次用于X,一次用于Y.两者应该相互独立应该显而易见,因为它们是尺寸;这就是维度的作用! :)
所以,插入你的价值我们得到:
center_x = (320 - 25) / 2 = 147
center_y = (480 - 25) / 2 = 227
我向下舍去;在任何一种情况下它都不能被完全整除,所以你将不得不选择一种舍入方法。在C和C ++中,只使用整数运算会自动获得这个,因为除法将在整数上完成。