2010-04-29 102 views
1

我試圖用opengl在xcode內部創建一個旋轉的方形,但是由於某種原因,我有一個旋轉三角形?Opengl三角形而不是方形

我在sio2裏面做這個,但我不認爲這是問題。

這裏是三角: http://img220.imageshack.us/img220/7051/snapzproxscreensnapz001.png

這裏是我的代碼:

void templateRender(void) 
{ 
    const GLfloat squareVertices[] ={ 
     100.0f, -100.0f, 
     100.0f, -100.0f, 
     -100.0f, 100.0f, 
     100.0f, 100.0f, 

    }; 

    const unsigned char squareColors[] = { 
     255, 255, 0, 255, 
     0, 255, 255, 255, 
     0, 0, 0, 0, 
     255, 0, 255, 255, 
    }; 


    glMatrixMode(GL_MODELVIEW); 
    glLoadIdentity(); 

    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); 

    // Your rendering code here... 

    sio2WindowEnter2D(sio2->_SIO2window, 0.0f, 1.0f); 
    { 
     glVertexPointer(2, GL_FLOAT, 0, squareVertices); 
     glEnableClientState(GL_VERTEX_ARRAY); 
     //set up the color array 
     glColorPointer(4, GL_UNSIGNED_BYTE, 0, squareColors); 
     glEnableClientState(GL_COLOR_ARRAY); 

     glTranslatef(sio2->_SIO2window->scl->x * 0.5f, 
        sio2->_SIO2window->scl->y * 0.5f, 0.0f); 

     static float rotz = 0.0f; 
     glRotatef(rotz, 0.0f, 0.0f, 1.0f); 
     rotz += 90.0f * sio2->_SIO2window->d_time; 
     glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 
    } 
    sio2WindowLeave2D();  
} 

回答

6

您點中的兩個是相同的。因此,你只提供了三個獨特的點,因此你有一個三角形。

您缺少的點是-100.0f,-100.0f,

+0

非常感謝!我非常感謝你的快速回復, http://img413.imageshack.us/i/snapzproxscreensnapz001.png/ :) – Dave 2010-04-29 18:27:47