将opengl坐标转换为像素格式

时间:2013-05-27 03:04:37

标签: android opengl-es

我有一个1280x720分辨率的Android智能手机屏幕,我有一个OpenGL组件的活动,屏幕上有一个矩形对象,这个对象不会集中,边缘的位置正好我得到了以下内容配置:左: 0.19f上:0.05 f,右:0.01 f,Botton:0.05 f。

但我不知道这些数字究竟代表什么,我想知道是否有可能知道这些边距的确切值(以像素为单位)?

如果您需要任何其他信息,请问,我不知道opengl,但我正在尝试使用使用opengl的现有代码。enter image description here

1 个答案:

答案 0 :(得分:0)

是的,有可能。这些是Viewport的矩形,表示为其父容器的分数或百分比(应该是您提到的1280x720分辨率屏幕的活动)。因此,像素数可以计算为:

Left:   (0.19 * 1280) = 243.2 px
Top:    (0.05 * 720)  = 36    px
Right:  (0.01 * 1280) = 12.8  px
Bottom: (0.05 * 720)  = 36    px

请注意,右侧和底侧是屏幕右侧和底侧的像素。如果你想要它们的像素坐标,你必须从屏幕尺寸中减去它们。

Right:  (1280 - 12.8) = 1267.2 px
Bottom: (720 - 36)    = 684 px

或者,一般来说,

leftPixels = leftPercent * screenWidth;
topPixels = topPercent * screenHeight;
rightPixels = screenWidth - (rightPercent * screenWidth);
bottomPixels = screenHeight - (bottomPercent * screenHeight);