Android OpenGL ES 2.0基于屏幕分辨率计算距离

Android OpenGL ES 2.0基于屏幕分辨率计算距离,android,opengl-es-2.0,screen-resolution,Android,Opengl Es 2.0,Screen Resolution,我试着画在x轴上彼此有一定距离的矩形。 每个矩形上的距离应为 (screen width - rectangle width) 这样一次只能在屏幕上完全显示一个矩形。如果我向左拖动第一个矩形,屏幕上未显示(或剪切)的矩形部分将是第二个矩形上显示的数量 问题是我不知道如何计算矩形宽度与屏幕宽度的比率。 我的矩形顶点是 final float[] rectangleVerticesData = { // X, Y, Z -1.0f, 2.0f, 0.0f,

我试着画在x轴上彼此有一定距离的矩形。 每个矩形上的距离应为

(screen width - rectangle width)
这样一次只能在屏幕上完全显示一个矩形。如果我向左拖动第一个矩形,屏幕上未显示(或剪切)的矩形部分将是第二个矩形上显示的数量

问题是我不知道如何计算矩形宽度与屏幕宽度的比率。 我的矩形顶点是

final float[] rectangleVerticesData = {
        // X, Y, Z
        -1.0f, 2.0f, 0.0f,            
        -1.0f, -2.0f, 0.0f,            
        1.0f, 2.0f, 0.0f,            
        -1.0f, -2.0f, 0.0f,            
        1.0f, -2.0f, 0.0f,            
        1.0f, 2.0f, 0.0f
};
基于以上,我的矩形宽度是2。我使用的是1280像素宽的平板电脑。 使用上面的公式,我得到

1280-2=1278

当我运行程序时,预期的输出与我试图实现的不一样。当我拖动第一个矩形时,即使将第一个矩形完全拖离屏幕,也不会显示下一个矩形

当我尝试将距离编码为10时,矩形显示为该距离。我想1278是他们之间的距离。如何根据屏幕宽度计算三角形之间的正确距离,以便一次只能在屏幕上完全显示一个矩形?
任何帮助都将不胜感激。谢谢。

在OpenGL中,屏幕被视为标准化大小的四边形,即从顶点(-1,-1)延伸到顶点(+1,+1)。为绘制而提供给OpenGL的顶点输入不根据屏幕像素大小变化,而是在内部转换为实际屏幕大小进行绘制。由于有许多设备具有不同的屏幕尺寸,要使GL代码在所有设备上运行而无需硬编码屏幕尺寸,这是必需的


因此,您必须相应地调整您的计算。

谢谢@prabindh的回复。我想我需要更多的实验来计算这个。