Opengl треугольник вместо квадрата - PullRequest
1 голос
/ 29 апреля 2010

Я пытаюсь создать вращающийся квадрат внутри 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();    
}

1 Ответ

6 голосов
/ 29 апреля 2010

Две ваши точки совпадают. Поэтому вы предоставили только три уникальных пункта, таким образом, у вас есть треугольник.

Точка, которую вам не хватает, это -100.0f, -100.0f,

...