我可以通过提及像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)。
我想在那里画一个小矩形......但是当我将这些值传递到顶点时,矩形就会出现在我的屏幕之外....
任何人都可以帮助我了解如何实现这一目标。
感谢。
答案 0 :(得分:0)
您的触摸坐标位于屏幕坐标中,这是基于像素的,而在您当前的情况下,您可以在通常命名为规范化设备坐标的中进行渲染/ em>,允许您从X&中的[-1,1]中绘制Y坐标。
您缺少的是使这两个空间协同工作的转换。对于您的场景,最简单的解决方案可能是在屏幕坐标中渲染。基本上,取每个触摸坐标并将其映射到范围[-1,1]。以下内容应该有效:
x_drawing_coordinate = 2.0 * x_touch_coordinate / screen_width - 1.0
并对y坐标执行相同操作,但使用screen_height。