• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 29  文章 - 13  trackbacks - 0
            <2006年9月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            1234567

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            相冊

            收藏夾

            c++

            Linux

            Tools

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            點擊下載源文件



            /*
            坐標(biāo)觀察程序,
            ESC:退出
            F5:復(fù)位
            LEFT/RIGHT:以綠色Y為軸心旋轉(zhuǎn)
            UP/DOWN:以紅色X為軸心旋轉(zhuǎn)
            PAGEUP/PAGEDOWN:以藍(lán)色z為軸心旋轉(zhuǎn)
            */
            #include <GL/gl.h>
            #include <SDL/SDL.h>
            bool running=true;
            float x=0.0,y=0.0,z=0.0;
            enum Target{modelview,projection};
            Target target=modelview;

            void initGL()
            {
            ?? ?SDL_Init(SDL_INIT_VIDEO);
            ?? ?SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY,SDL_DEFAULT_REPEAT_INTERVAL);
            ?? ?SDL_SetVideoMode(600,300,16,SDL_OPENGL);
            ?? ?
            }
            void destroyGL()
            {
            ?? ?SDL_Quit();
            }
            void drawCoordinate()
            {
            ?? ?glBegin(GL_LINES);
            ?? ??? ?glLineWidth(10.0f);
            ?? ??? ?glColor3f(1,0,0);
            ?? ??? ?glVertex3f(0,0,0);
            ?? ??? ?glVertex3f(1,0,0);
            ?? ??? ?glColor3f(0,1,0);
            ?? ??? ?glVertex3f(0,0,0);
            ?? ??? ?glVertex3f(0,1,0);
            ?? ??? ?glColor3f(0,0,1);
            ?? ??? ?glVertex3f(0,0,0);
            ?? ??? ?glVertex3f(0,0,1);
            ?? ?glEnd();

            }
            void draw()
            {
            ?? ?glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
            ?? ?if(target==modelview)
            ?? ?{
            ?? ??? ?glMatrixMode(GL_MODELVIEW);
            ?? ?}
            ?? ?else
            ?? ?{
            ?? ??? ?glMatrixMode(GL_PROJECTION);
            ?? ?}
            ?? ?glLoadIdentity();
            ?? ?glRotatef(x,1,0,0);
            ?? ?glRotatef(y,0,1,0);
            ?? ?glRotatef(z,0,0,1);
            ?? ?glMatrixMode(GL_MODELVIEW);
            ?? ?drawCoordinate();
            ?? ?
            ?? ?SDL_GL_SwapBuffers();

            }
            void switchTarget()
            {
            ?? ?if(((int)target+1)>((int)projection))
            ?? ?{
            ?? ??? ?target=modelview;
            ?? ?}else
            ?? ?{
            ?? ??? ?target=(Target)((int)target+1);
            ?? ?}
            }
            void reset()
            {
            ?? ?x=0;
            ?? ?y=0;
            ?? ?z=0;
            }
            void quit()
            {
            ?? ?running=false;
            }
            void onKeyDown(const SDL_Event& event)
            {
            ?? ?switch(event.key.keysym.sym)
            ?? ?{
            ?? ?case SDLK_ESCAPE:
            ?? ?quit();
            ?? ?break;
            ?? ?case SDLK_TAB:
            ?? ?switchTarget();
            ?? ?break;
            ?? ?case SDLK_F5:
            ?? ?reset();
            ?? ?break;
            ?? ?case SDLK_LEFT:
            ?? ?y+=1;
            ?? ?break;
            ?? ?case SDLK_RIGHT:
            ?? ?y-=1;
            ?? ?break;
            ?? ?case SDLK_UP:
            ?? ?x+=1;
            ?? ?break;
            ?? ?case SDLK_DOWN:
            ?? ?x-=1;
            ?? ?break;
            ?? ?case SDLK_PAGEUP:
            ?? ?z+=1;
            ?? ?break;
            ?? ?case SDLK_PAGEDOWN:
            ?? ?z-=1;
            ?? ?break;
            ?? ?
            ?? ?}
            }
            void loop()
            {
            ?? ?SDL_Event event;
            ?? ?while(running)
            ?? ?{
            ?? ??? ?while(SDL_PollEvent(&event))
            ?? ??? ?{
            ?? ??? ??? ?switch(event.type)
            ?? ??? ??? ?{
            ?? ??? ??? ?case SDL_QUIT:
            ?? ??? ??? ??? ?quit();
            ?? ??? ??? ?break;
            ?? ??? ??? ?case SDL_KEYDOWN:
            ?? ??? ??? ??? ?onKeyDown(event);
            ?? ??? ??? ?break;
            ?? ??? ??? ?}
            ?? ??? ?}
            ?? ??? ?draw();
            ?? ??? ?SDL_Delay(50);
            ?? ?}

            }
            int main(int argc,char* argv[])
            {
            ?? ?initGL();
            ?? ?loop();
            ?? ?destroyGL();?? ?
            ?? ?return 0;
            }

            posted on 2006-09-28 16:52 四海 閱讀(1179) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            理论片午午伦夜理片久久 | 亚洲天堂久久精品| 久久婷婷国产麻豆91天堂| 99久久国产免费福利| 人妻中文久久久久| 7777精品久久久大香线蕉| 久久精品国产亚洲77777| 国产亚洲精午夜久久久久久| 久久人人爽人人爽人人av东京热 | 欧美日韩久久中文字幕| 亚洲乱码精品久久久久..| 91麻精品国产91久久久久| 国产精品亚洲综合久久| 亚洲狠狠久久综合一区77777| 欧美日韩精品久久久久| 久久精品aⅴ无码中文字字幕不卡| 国产午夜精品理论片久久 | 欧美熟妇另类久久久久久不卡 | 人人妻久久人人澡人人爽人人精品| 亚洲国产精品无码成人片久久| 国内精品久久久久久麻豆| 日韩人妻无码精品久久久不卡| 国产精品99久久久久久宅男| 欧美噜噜久久久XXX| 久久这里只有精品首页| 久久艹国产| 国产精品久久久久久久久鸭| 亚洲色欲久久久综合网东京热| 国产高清美女一级a毛片久久w| 99久久99久久| 久久亚洲精品成人AV| 亚洲色欲久久久综合网东京热| 久久久久久亚洲精品影院| 久久人人爽人人爽人人片AV东京热 | 色噜噜狠狠先锋影音久久| 国产人久久人人人人爽| 日韩精品久久久肉伦网站| 中文精品久久久久人妻不卡| 亚洲欧美日韩精品久久亚洲区| 久久青青草原精品国产软件| 色8激情欧美成人久久综合电|