2019年3月8日 星期五

學渣的奮鬥史-3

今天下大雨加上寒流

真D冷


今天上的是移動

從小葉老師提供的資源開啟一個可以透過改變座標以移動物件的東西



透過上次茶壺的程式碼

寫一行移動座標的程式碼

glTranslated( 0.2 , 0.2 , 0 );

逗點分隔開來的分別是

glTranslated( x , y , z );

程式寫好後,由滑鼠在點一下視窗會讓程式碼在執行一次

成果大約如下圖


論及為什麼會出現第二個茶壺呢

因為程式中的bug會造成執行的部分重複

加上兩行程式碼就能夠避面這個情況

分別是
glPushMatrix ( ) ; //備份矩陣,保護好程式

glPopMatrix ( ) ; //還原矩陣,跟上面的備份矩陣一起使用

使用方式如下

glPushMatrix();//備份矩陣,保護好程式
        glTranslated(0.2,0.2,0);//移動茶壺的程式
        glutSolidTeapot(0.3);//實心茶壺
glPopMatrix();//還原矩陣,跟上面的備份矩陣一起使用

使用後就能避免掉茶壺會重複移動的問題了

加上glutMotionFunc(motion);

在建立一個motion的函式讓他能運作

要記得加float以定義x,y座標值

motion函式內放

x=nowx;//更新x座標
y=nowy;//更新y座標
display( );//再次呼叫display讓他再做一次以更新畫面

加上

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

以更新buffer跟depth

接著就能在視窗內讓茶壺跟著滑鼠移動了


今天就到這裡

下課!!!!





小葉老師的英文小教室

移動 Translate

沒有留言:

張貼留言