opengl ES

Posted on 2012-03-07 00:57  无忧consume  阅读(203)  评论(0编辑  收藏  举报

 

static GLfloat rot = 0.0;    

    static const Vertex3D vertices[]= {        

        {0, -0.525731, 0.850651},             // vertices[0]        

        {0.850651, 0, 0.525731},              // vertices[1]        

        {0.850651, 0, -0.525731},             // vertices[2]        

        {-0.850651, 0, -0.525731},            // vertices[3]        

        {-0.850651, 0, 0.525731},             // vertices[4]        

        {-0.525731, 0.850651, 0},             // vertices[5]        

        {0.525731, 0.850651, 0},              // vertices[6]        

        {0.525731, -0.850651, 0},             // vertices[7]        

        {-0.525731, -0.850651, 0},            // vertices[8]        

        {0, -0.525731, -0.850651},            // vertices[9]        

        {0, 0.525731, -0.850651},             // vertices[10]        

        {0, 0.525731, 0.850651}               // vertices[11]    

    };    

        static const Color3D colors[] = {        

            {1.0, 0.0, 0.0, 1.0},        

            {1.0, 0.5, 0.0, 1.0},        

            {1.0, 1.0, 0.0, 1.0},        

            {0.5, 1.0, 0.0, 1.0},        

            {0.0, 1.0, 0.0, 1.0},        

            {0.0, 1.0, 0.5, 1.0},        

            {0.0, 1.0, 1.0, 1.0},        

            {0.0, 0.5, 1.0, 1.0},        

            {0.0, 0.0, 1.0, 1.0},        

            {0.5, 0.0, 1.0, 1.0},        

            {1.0, 0.0, 1.0, 1.0},       

            {1.0, 0.0, 0.5, 1.0}    };    

        static const GLubyte icosahedronFaces[] = {        

            1, 2, 6,        

            1, 7, 2,        

            3, 4, 5,        

            4, 3, 8,        

            6, 5, 11,        

            5, 6, 10,        

            9, 10, 2,        

            10, 9, 3,        

            7, 8, 9,        

            8, 7, 0,        

            11, 0, 1,        

            0, 11, 4,        

            6, 2, 10,        

            1, 6, 11,        

            3, 5, 10,        

            5, 4, 11,        

            2, 7, 9,        

            7, 1, 0,        

            3, 9, 8,        

            4, 8, 0,    };    

        glLoadIdentity();    

        glClearColor(0.7, 0.7, 0.7, 1.0);    

        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    

        glEnableClientState(GL_VERTEX_ARRAY);    

        glEnableClientState(GL_COLOR_ARRAY);    

        glVertexPointer(3, GL_FLOAT, 0, vertices);    

        glColorPointer(4, GL_FLOAT, 0, colors);    

        for (int i = 1; i <= 3; i++)    {        

            glLoadIdentity();        

            glTranslatef(0.0f,-1.5,-3.0f * (GLfloat)i);        

            glRotatef(rot, 1.0, 1.0, 1.0);        

            glDrawElements(GL_TRIANGLES, 60, GL_UNSIGNED_BYTE, icosahedronFaces);    

        }    

        glDisableClientState(GL_VERTEX_ARRAY);    

        glDisableClientState(GL_COLOR_ARRAY);    

        static NSTimeInterval lastDrawTime;    

        if (lastDrawTime)    {        

            NSTimeInterval timeSinceLastDraw = [NSDate timeIntervalSinceReferenceDate] - lastDrawTime;        

            rot+=50 * timeSinceLastDraw;    

        }    

        lastDrawTime = [NSDatetimeIntervalSinceReferenceDate];

Copyright © 2024 无忧consume
Powered by .NET 8.0 on Kubernetes