Android opengl2d获取x,y坐标

Android opengl2d获取x,y坐标,android,opengl-es,coordinates,Android,Opengl Es,Coordinates,如果我在OpenGL中的-3f、3f、0.0f有一个点 我做的是gl.glTranslatef(0.0f,0.0f,-6.0f) 然后我画这个物体。该点将在x,y屏幕坐标中的何处绘制? (屏幕宽度=800,高度=480)。如果不应用任何其他变换,如视图或投影变换,它将通过不同的坐标系,如下所示: 原始坐标:(-3.0f,3.0f,0.0f) 平移后(剪辑坐标):(-3.0f,3.0f,-6.0f) 透视分割没有变化(标准化设备坐标):(-3.0f,3.0f,-6.0f) 视口变换后(窗口坐标)

如果我在OpenGL中的
-3f、3f、0.0f有一个点
我做的是gl.glTranslatef(0.0f,0.0f,-6.0f)
然后我画这个物体。该点将在x,y屏幕坐标中的何处绘制?
(屏幕宽度=800,高度=480)。

如果不应用任何其他变换,如视图或投影变换,它将通过不同的坐标系,如下所示:

  • 原始坐标:(-3.0f,3.0f,0.0f)
  • 平移后(剪辑坐标):(-3.0f,3.0f,-6.0f)
  • 透视分割没有变化(标准化设备坐标):(-3.0f,3.0f,-6.0f)
  • 视口变换后(窗口坐标):-800.0960.0

所以答案是:远离屏幕!剪辑将在第二步后发挥作用。如果这只是一个点,它将被消除剪辑的权利,然后。如果它是在视锥体内具有点的基本体的一部分,则该基本体将被相应地剪裁。

剪裁将完全消除该点(假设单位变换矩阵)。它有一个恒定的w坐标为1.0,这使得所有东西都在范围[-w,w]之外。点-3.0,3.0,0.0,6.0将起作用。这将被绘制到屏幕顶部的3/4,以及左侧的3/4。