2011-07-08 24 views
0

我试图用OpenGL画线,从屏幕的一边到另一边(在Android手机上)。它应该通过读取加速度传感器来上下移动。 我的问题是,线只在终点上下移动。在中间它保持在0,0(屏幕中间)。因此,行有信五OpenGL的线在屏幕中间相遇而不是直线的

这里是我的代码的形式:

@Override 
public void onDrawFrame(GL10 gl) { 
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); 
    gl.glClearColor(0f, 0f, 0f, 0f); 

    float vertices[] = { 
      0-width/2,-accel,0, 
      width/2,-accel,0 
     }; 
     ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4); 
     vbb.order(ByteOrder.nativeOrder()); 
     FloatBuffer vertexBuffer = vbb.asFloatBuffer(); 
     vertexBuffer.put(vertices); 
     vertexBuffer.position(0); 

     gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); 
     gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer); 

     short[] indices = { 0, 1, 2, 0, 2, 3 }; 
     ByteBuffer ibb = ByteBuffer.allocateDirect(indices.length * 2); 
     ibb.order(ByteOrder.nativeOrder()); 
     ShortBuffer indexBuffer = ibb.asShortBuffer(); 
     indexBuffer.put(indices); 
     indexBuffer.position(0); 

     gl.glFrontFace(GL10.GL_CCW); 
     gl.glEnable(GL10.GL_CULL_FACE); 
     gl.glCullFace(GL10.GL_BACK);    

     gl.glDrawElements(GL10.GL_LINE_LOOP, indices.length, 
        GL10.GL_UNSIGNED_SHORT, ibb); 

     gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); 

} 

回答

相关问题