将对象置于屏幕正中央
Center an object exactly in the center of the screen
我正试图将一个对象正好放在屏幕的中心。屏幕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++中,只要使用整数运算就可以自动得到这个,因为除法是在整数上进行的。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 如何在屏幕上显示对象列表?
- 如何在 Win32 应用中拖动纯色矩形,而不会产生白色闪烁,也不会干扰其他屏幕对象
- 当对象在屏幕空间中较小时,OpenGL 更新缓慢
- 屏幕上协调对象
- 在同一屏幕上显示两个不同的对象
- 如何使对准对象自动筛选为屏幕,以便于像素网格
- 通知 GUI 对象有关屏幕大小的信息 - 设计
- OpenGL 在屏幕上渲染之前旋转对象以设置其正确的表面
- 如何在 opengl 中翻译屏幕中的投影对象
- 如何在屏幕上缓慢移动对象
- 当尝试通过OpenGL渲染顶点缓冲对象时,屏幕上没有显示任何内容
- OpenGL, C++ -> 你如何在屏幕上布置对象?
- 将对象置于屏幕正中央
- 在(桌面)屏幕上绘制变形对象
- 如何将framebuffer对象中的屏幕外数据绘制到QGLWidget
- 在屏幕上转换对象可编程管道