青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-38  評(píng)論-23  文章-0  trackbacks-0

所有的lesson 都將基于lesson_1中的頭文件而寫.

lesson_4的內(nèi)容在lesson_3的基礎(chǔ)上添加了部分內(nèi)容而寫成的.這課當(dāng)中,將會(huì)使用到模型變換的旋轉(zhuǎn)變換.
前幾次,曾使用了glTranslatef(d)來移動(dòng)模型.這次將使用glRotatef 來旋轉(zhuǎn)模型.而為了看到一個(gè)動(dòng)畫的效果,將注冊(cè)一個(gè)空閑回調(diào)函數(shù),使得角度不斷自增.

#include "openglglut.h"

/*
** opengl 教程第四課內(nèi)容
** 在窗口的左邊部分繪制一個(gè)多彩的三角形,它將使用平滑著色
** 在窗口的右邊部分繪制一個(gè)藍(lán)色的正方形,它將使用單調(diào)著色
** 使得左邊的三角形繞Y軸不停旋轉(zhuǎn)
** 使得右邊的正方形繞x軸不停旋轉(zhuǎn)
*/

double yRot=0.0;    //三角形繞y軸旋轉(zhuǎn)的角度
double xRot=0.0;    //三角形繞x軸旋轉(zhuǎn)的角度
int main(int argc, char** argv)
{
    
/** 初始化窗口 并創(chuàng)建窗口*/
    createWindow(
"opengl lesson_4",&argc,argv);

    
/** 注冊(cè)glut的一些函數(shù) */
    glutReshapeFunc(glutResize);     
//窗口調(diào)整函數(shù) 使得調(diào)整后圖形顯示不發(fā)生改變
    glutIdleFunc(glutIdle);          //空閑回調(diào)函數(shù) 使得在空閑時(shí)間內(nèi)進(jìn)行一些操作
    glutDisplayFunc(glutDisplay);    //重繪函數(shù)     使得可以在窗口中繪制圖形
    glutSpecialFunc(glutSpecial);    //特殊按鍵函數(shù) 使得實(shí)現(xiàn)全屏/窗口切換
    /** 初始化opengl的一些操作*/
    InitOpenGL();

    
/** 進(jìn)入仿真循環(huán)*/
    glutMainLoop();
}

/** 實(shí)現(xiàn)頭文件當(dāng)中定義的繪制函數(shù) 繪制三角形和正方形 **/
void glutDisplay(void)
{
    glClear(GL_COLOR_BUFFER_BIT 
| GL_DEPTH_BUFFER_BIT);

    glLoadIdentity();                   
//將先初始化單位矩陣
    glPushMatrix();                     //將當(dāng)前矩陣復(fù)制一個(gè)壓入棧頂,并保持當(dāng)前矩陣不變
    
    glTranslatef(
-1.5,0.0,-6.0);
    glRotatef(yRot,
0.0,1.0,0.0);        //使得三角形繞y軸旋轉(zhuǎn)yRot角度

    
//決定三角形三個(gè)頂點(diǎn)的顏色值,三角形內(nèi)部各個(gè)點(diǎn)的顏色將會(huì)是線性插值的
    glBegin(GL_TRIANGLES);             // 繪制三角形
        glColor3f(1.0f,0.0f,0.0f);     //使用紅色繪制上頂點(diǎn)
        glVertex3f( 0.0f1.0f0.0f); //上頂點(diǎn)
        glColor3f(0.0f,1.0f,0.0f);     //使用綠色繪制左下頂點(diǎn)
        glVertex3f(-1.0f,-1.0f0.0f); //左下
        glColor3f(0.0f,0.0f,1.0f);     //使用藍(lán)色繪制右下頂點(diǎn)
        glVertex3f( 1.0f,-1.0f0.0f); //右下
    glEnd();
    glPopMatrix();                     
//恢復(fù)當(dāng)前矩陣為上一次push時(shí)的矩陣

    glTranslatef(
1.5f,0.0f,-6.0f);
    glRotatef(xRot,
1.0,0.0,0.0);       //使得正方形繞x軸旋轉(zhuǎn)xRot角度
    glColor3f(0.0f,0.0f,1.0f);         //將當(dāng)前顏色值設(shè)置為藍(lán)色 繪制整個(gè)正方形
    glBegin(GL_QUADS);                 // 繪制正方形
        glVertex3f(-1.0f1.0f0.0f); // 左上
        glVertex3f( 1.0f1.0f0.0f); // 右上
        glVertex3f( 1.0f,-1.0f0.0f); // 左下
        glVertex3f(-1.0f,-1.0f0.0f); // 右下
    glEnd();

    glutSwapBuffers();                 
//強(qiáng)制繪圖命令執(zhí)行繪制在緩沖區(qū)交換出來
}

/** 實(shí)現(xiàn)頭文件當(dāng)中聲明的空閑回調(diào)函數(shù)*/
void glutIdle(void)
{
    yRot
+=0.2f;              //增加三角形旋轉(zhuǎn)角度
    xRot-=0.15f;              //減少正方形減少角度
    glutPostRedisplay();    //使得執(zhí)行完該函數(shù)后調(diào)用重繪函數(shù)
}

最終的結(jié)果是:


末尾總結(jié):
glRotatef(angle,x,y,z) 將為使得模型繞任意軸旋轉(zhuǎn)angle角度.它將會(huì)產(chǎn)生一個(gè)旋轉(zhuǎn)矩陣右乘當(dāng)前矩陣.所以改變了當(dāng)前矩陣.而為了使得繪制的時(shí)候左邊的三角形不影響到右邊正方形的變換矩陣故在繪制三角形之前使用glPushMatrix()保存當(dāng)前矩陣,繪制完成之后使用glPopMatrix() 恢復(fù)之前的矩陣.當(dāng)然也可以使用glLoadIdentity()設(shè)置當(dāng)前矩陣為單位矩陣的方法來實(shí)現(xiàn)它..

其次,這次多了以個(gè)glIdleFunc() 注冊(cè)空閑回調(diào)函數(shù).即在系統(tǒng)沒有其他事件處理的時(shí)候?qū)⑻幚磉@個(gè)函數(shù),使得旋轉(zhuǎn)的角度不斷改變.

glPostRedisplay() 使得當(dāng)前窗口將會(huì)進(jìn)行重繪..根據(jù)角度的改變,從而使得我們看到的是一個(gè)旋轉(zhuǎn)當(dāng)中的動(dòng)畫效果

最后將說明一點(diǎn)的是:我曾在紅寶書看到一段內(nèi)容:有時(shí)候?yàn)榱藢?shí)現(xiàn)連續(xù)的旋轉(zhuǎn),我們可能會(huì)想到重復(fù)應(yīng)用一個(gè)值很小的旋轉(zhuǎn)矩陣,這個(gè)會(huì)存在一個(gè)問題.就是誤差,使得變換累積結(jié)果.我們應(yīng)該摒棄這種做法.即使用一個(gè)新的角度來變換.就將使用如下的方法:
glLoadIdentity();
glRotatef(new_angle,x,y,z);

只要new_angle=old_angle+offset
posted on 2009-07-17 16:33 米游 閱讀(620) 評(píng)論(0)  編輯 收藏 引用 所屬分類: OpenGL/OSG
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            夜夜嗨av一区二区三区网站四季av| 91久久中文| 久久精品国产精品亚洲综合| 久久久中精品2020中文| 精品不卡一区二区三区| 男女激情视频一区| 日韩一区二区精品视频| 欧美一级在线视频| **性色生活片久久毛片| 欧美精品一二三| 亚洲免费在线播放| 欧美不卡在线视频| 亚洲一级黄色片| 国外精品视频| 欧美日韩一卡| 久久精品91| 日韩视频在线观看| 噜噜噜躁狠狠躁狠狠精品视频| 91久久久久久| 国产精品视频自拍| 欧美jizzhd精品欧美喷水| 一区二区三区四区五区精品视频 | 亚洲欧美激情四射在线日 | 99re6这里只有精品视频在线观看| 亚洲欧美日韩一区二区在线| 在线播放中文一区| 欧美日韩免费| 久久综合色8888| 亚洲自拍高清| 亚洲欧洲日韩综合二区| 欧美在线播放一区| 日韩一区二区福利| 影音先锋久久精品| 国产精品网曝门| 欧美精品综合| 久久午夜av| 欧美亚洲自偷自偷| 99re热精品| 欧美 日韩 国产精品免费观看| 亚洲欧美制服另类日韩| 亚洲精品国产精品国自产观看浪潮 | 欧美福利一区二区三区| 欧美一级大片在线免费观看| 亚洲美女毛片| 亚洲国产精彩中文乱码av在线播放| 欧美一区二区三区在线看| 一二三区精品福利视频| 亚洲国产精品一区在线观看不卡| 国产免费观看久久| 国产精品成人一区| 欧美va亚洲va香蕉在线| 久久久久久一区二区三区| 午夜久久久久| 亚洲免费视频一区二区| 一区二区三区蜜桃网| 日韩午夜电影| 亚洲精品国精品久久99热一| 亚洲国产精品久久久久久女王| 久久综合九色综合欧美就去吻| 欧美中文字幕不卡| 午夜精品电影| 欧美亚洲尤物久久| 先锋影音国产精品| 亚洲欧美卡通另类91av| 亚洲欧美成人一区二区三区| 亚洲一区二区三区精品在线| 亚洲天堂免费观看| 亚洲视频在线看| 亚洲一区二区三区在线观看视频 | 国产欧美在线播放| 国产女主播一区二区三区| 国产拍揄自揄精品视频麻豆| 国产精品一级久久久| 国产精品一区二区久久久| 国产伦精品一区二区三区视频黑人 | 亚洲欧美激情诱惑| 午夜久久福利| 久久精品夜色噜噜亚洲aⅴ| 久久久久久久久久久久久久一区| 久久精品国产精品亚洲综合 | 亚洲精品激情| 中日韩男男gay无套| 亚洲小说欧美另类社区| 亚洲一区在线观看免费观看电影高清| 亚洲一区二区少妇| 午夜精品久久| 久久久噜久噜久久综合| 欧美国产欧美综合 | 蜜桃av噜噜一区二区三区| 欧美成人激情视频免费观看| 欧美日韩大片| 国产日韩精品一区观看| 在线欧美日韩国产| 99re66热这里只有精品3直播| 亚洲一区图片| 久久野战av| 亚洲精品久久久久| 亚洲欧美福利一区二区| 久久精品夜色噜噜亚洲a∨| 欧美激情视频网站| 国产精品推荐精品| 亚洲国产免费| 亚洲欧美日韩区| 免费观看日韩av| 999在线观看精品免费不卡网站| 午夜精品视频在线观看一区二区| 久久综合九色欧美综合狠狠| 欧美日韩伦理在线| 国产综合色产在线精品| 日韩亚洲欧美综合| 亚久久调教视频| 欧美激情网友自拍| 亚洲欧美经典视频| 欧美第一黄色网| 国产一区二区三区奇米久涩| 亚洲乱码一区二区| 久久久欧美精品| 亚洲免费观看高清完整版在线观看熊| 香蕉久久久久久久av网站| 欧美成人一品| 国产在线播精品第三| 国产精品99久久久久久久vr| 久久青青草综合| 亚洲一区二区三区在线视频| 美女成人午夜| 国产偷国产偷精品高清尤物| 夜夜夜久久久| 欧美高清在线精品一区| 午夜免费电影一区在线观看| 欧美精品一区在线播放| 亚洲第一精品影视| 久久九九精品99国产精品| avtt综合网| 欧美成在线观看| 在线观看福利一区| 久久精品国产第一区二区三区| 一区二区三区蜜桃网| 欧美区一区二区三区| 亚洲国产成人久久综合| 久久精品在线| 亚洲欧美激情一区二区| 国产精品99一区| 一级成人国产| 亚洲人成久久| 欧美激情在线播放| 亚洲欧洲一区二区三区久久| 玖玖综合伊人| 久久精品亚洲一区| 黑人一区二区| 久久性天堂网| 久久精品一区二区三区中文字幕| 国产精品午夜视频| 午夜欧美大尺度福利影院在线看| 日韩视频在线一区二区| 欧美日产一区二区三区在线观看 | 久久这里有精品15一区二区三区| 亚洲欧美精品在线观看| 国产精品青草久久久久福利99| 亚洲天堂av在线免费观看| 亚洲精品国精品久久99热| 欧美国产另类| 一本色道久久88综合日韩精品| 亚洲韩国日本中文字幕| 欧美国产日韩一区二区在线观看| 亚洲七七久久综合桃花剧情介绍| 欧美激情视频在线播放| 欧美成人免费在线视频| 99精品视频免费全部在线| 亚洲精品护士| 国产精品黄视频| 欧美中文字幕视频| 欧美一区二区在线免费观看| 樱桃国产成人精品视频| 欧美国产日产韩国视频| 欧美激情一区二区三区| 亚洲亚洲精品三区日韩精品在线视频| 99re热精品| 国产毛片一区二区| 久久综合婷婷| 欧美成人免费在线| 亚洲主播在线观看| 性伦欧美刺激片在线观看| 在线色欧美三级视频| 亚洲国产日韩在线| 国产精品久久久久久亚洲毛片| 久久精品盗摄| 欧美不卡一区| 亚洲欧美国产77777| 久久国产精品99精品国产| 亚洲国产女人aaa毛片在线| 亚洲伦理网站| 国产精品v亚洲精品v日韩精品 | 欧美xxx在线观看| 欧美精品一区在线观看| 欧美亚洲一区二区三区| 久久一本综合频道| 亚洲一二三区在线观看| 久久久99精品免费观看不卡| 亚洲精品一级| 欧美一级在线播放|