Android OpenGL ES 2.0基于屏幕分辨率计算距离
我试着画在x轴上彼此有一定距离的矩形。 每个矩形上的距离应为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,
(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的回复。我想我需要更多的实验来计算这个。