首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Opengl-es Android和TouchEvents

Opengl-es Android和TouchEvents
EN

Stack Overflow用户
提问于 2011-08-19 02:49:27
回答 1查看 836关注 0票数 1

现在,我正在尝试创建一个简单的应用程序,当你在屏幕上移动它时,一个方块会跟随你的手指触摸的地方。我想使用opengl-es来做这件事。我对它还很陌生,现在我只能将touch事件报告的窗口坐标映射到opengl-es所具有的笛卡尔平面坐标系。现在,为了得到x和y的转换,我使用:

代码语言:javascript
复制
final int x = (e.getX()-(getWidth()/2))/(getWidth()/2) * SOME_SCALING_FACTOR;
final int y = ((getHeight()/2)-e.getY())/(getHeight()/2) * SOME_SCALING_FACTOR;

这背后的逻辑是,我认为笛卡尔平面是以屏幕为中心的,所以我试图以这种方式重新映射我的触摸事件坐标。然而,我的结果非常不准确。有没有其他我应该这样做的方式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-22 19:42:17

我不会在那里使用SOME_SCALING_FACTOR。最好为它配置OpenGL。

您可以使用下面的代码来配置相机,然后进行绘图。

代码语言:javascript
复制
gl.glMatrixMode(gl.GL_PROJECTION);
gl.glLoadIdentity();
GLU.gluOrtho2D(gl, 0, WINDOWx, 0, WINDOWy);
gl.glMatrixMode(gl.GL_MODELVIEW);
gl.glLoadIdentity();

屏幕左下角为原点,左上角为(0,WINDOWy),依此类推。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7112529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档