在Android OpenGL渲染器中使用触摸坐标

时间:2015-11-14 16:59:34

标签: android opengl-es touch vertices

我可以通过提及像0.1f,1.2f等顶点的浮点值来绘制android opengl中的矩形或正方形...

 private float vertices[] = {

       -1.0f, 0.8f,  0.0f,        // V1 - bottom left

       -1.0f, 1.0f,  0.0f,        // V2 - top left

        1.0f, 0.8f,  0.0f,        // V3 - bottom right

        1.0f, 1.0f,  0.0f         // V4 - top right

};

但我想绘制用户触摸的形状(矩形)...... 例如,如果用户触摸(x,y)=(200px,300px)。

我想在那里画一个小矩形......但是当我将这些值传递到顶点时,矩形就会出现在我的屏幕之外....

任何人都可以帮助我了解如何实现这一目标。

感谢。

1 个答案:

答案 0 :(得分:0)

您的触摸坐标位于屏幕坐标中,这是基于像素的,而在您当前的情况下,您可以在通常命名为规范化设备坐标的中进行渲染/ em>,允许您从X&中的[-1,1]中绘制Y坐标。

您缺少的是使这两个空间协同工作的转换。对于您的场景,最简单的解决方案可能是在屏幕坐标中渲染。基本上,取每个触摸坐标并将其映射到范围[-1,1]。以下内容应该有效:

x_drawing_coordinate = 2.0 * x_touch_coordinate / screen_width - 1.0

并对y坐标执行相同操作,但使用screen_height。