我试图将一个对象准确地放在屏幕的中心。屏幕为 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
atotal_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++ 中,仅使用整数算术就会自动得到这个,因为除法将在整数上完成。