2010-12-29 17 views
0

私のアプリでは、画面に描画される赤い四角形(実際には2つの三角形)があります。しかし、ユーザが画面をタップしたり指を動かしたりすると、図面が乱されて、正方形がランダムなパターンのように見えるようになります。なぜこれが起こっているのか?コード:OpenGL ESでの描画の問題

Triangle3D *triangles = malloc(sizeof(Triangle3D) * 2); 
triangles[0].v1 = Vertex3DMake(x, y, -3.0); 
triangles[0].v2 = Vertex3DMake(x+1.0, y-1.0, -3.0); 
triangles[0].v3 = Vertex3DMake(x-1.0, y-1.0, -3.0); 
triangles[1].v1 = Vertex3DMake(x-1.0, y-1.0, -3.0); 
triangles[1].v2 = Vertex3DMake(x+1.0, y-1.0, -3.0); 
triangles[1].v3 = Vertex3DMake(x, y-2.0, -3.0); 

    glLoadIdentity(); 

    glClearColor(0.7, 0.7, 0.7, 1.0); 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    glEnableClientState(GL_VERTEX_ARRAY); 
    glColor4f(1.0, 0.0, 0.0, 1.0); 
    glVertexPointer(3, GL_FLOAT, 0, triangles); 
    glDrawArrays(GL_TRIANGLE_STRIP, 0, 18); 
    glDisableClientState(GL_VERTEX_ARRAY); 
    glClearColor(0.7, 0.7, 0.7, 1.0); 

答えて

3

このグラフのように、三角形ストリップの罫線を配置する必要があります。 TRIANGLE_STRIP

他の形式。

Figure 1

+0

それはそれです!ありがとう。好奇心の中で、答えに絵を投稿するにはどうすればいいですか? – Jumhyn

+0

回答を投稿すると、画像URLを挿入できるアイコンがツールバーに表示されます。 – AechoLiu

2

あなたはtriangles[1].v1 3回を設定するのではなくtriangles[1].v1, v2, & v3を設定しているように見えます。

+0

それをキャッチするためにありがとう、しかし奇妙なことに問題ではなかった。私はそれを変更しましたが、私のプログラムは同じように動作しました。 – Jumhyn

関連する問題