簡體   English   中英

Opengl-es Android和TouchEvents

[英]Opengl-es Android and TouchEvents

現在,我正在嘗試創建一個簡單的應用程序,當您沿着屏幕移動手指時,您會碰到一個正方形。 我想使用opengl-es做到這一點。 我對此很陌生,現在我仍然堅持將touch事件報告的窗口坐標映射到opengl-es具有的笛卡爾平面坐標系。 現在,要獲取x和y轉換,我正在使用:

final int x = (e.getX()-(getWidth()/2))/(getWidth()/2) * SOME_SCALING_FACTOR;
final int y = ((getHeight()/2)-e.getY())/(getHeight()/2) * SOME_SCALING_FACTOR;

其背后的邏輯是,我認為笛卡爾平面圍繞屏幕居中,因此我試圖以此方式重新映射觸摸事件坐標。 但是,我的結果非常不准確。 還有另一種方法我應該這樣做嗎?

我不會在那里使用SOME_SCALING_FACTOR。 最好為其配置OpenGL。

您可以使用下面的代碼配置相機,然后進行繪制。

gl.glMatrixMode(gl.GL_PROJECTION);
gl.glLoadIdentity();
GLU.gluOrtho2D(gl, 0, WINDOWx, 0, WINDOWy);
gl.glMatrixMode(gl.GL_MODELVIEW);
gl.glLoadIdentity();

屏幕的左下角是原點,左上角是(0,WINDOWy)等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM