Week05 -1-1
先複習一下上週教的內容 一樣先去小葉老師的網站(小葉老師的網站-https://jsyeh.org/3dcg10/)
下載windows.zip和data.zip
解壓縮windows.zip並將data拉近windows的資料夾後開啟transformation.exe
glRotatef是旋轉
glScalef則是長高的
glBegin是藍色車子
glTranselatef 是移動物體
Week05 -1-2
今天的第一個程式
先複製上周04-1的程式來用
把旋轉軸改成Z軸
就會變成這樣轉了
然後再稍作修改將中間的程式碼改成以下樣子:
glColor3f(1,0,0);
glPushMatrix();
glRotatef(angle,0,0,1);
glTranslatef(0.8,0,0);
glutSolidTeapot(0.3);
glPopMatrix();
glColor3f(0,1,0);
glPushMatrix();
glRotatef(angle*1.5,0,0,1);
glTranslatef(0.8,0,0);
glutSolidTeapot(0.3);
glPopMatrix();
就會變成一個紅色一個綠色的茶壺在旋轉了~
將glRotatef的順序glTranslatef的順序顛倒轉的方式也會不一樣
如下圖
綠色茶壺變成原地轉了~~Week05-2-1
用老師傳給我們的程式OPENGL_TRT點開並按下執行
按ToDraw可以畫東西
像這樣
更改他的中心點後然後按空白鍵讓他轉動(若不能轉動切換輸入法就可以了)Week05-2-2老師講解下周的考試題目
drawHand()可以畫手但中心要寫別的程式取補上
完整地程式碼如下
glPushMatrix();
glTranslatef(-0.5,-0.9,0);
glRotatef(-45,0,0,1);
glTranslatef(-0.8,0.9,0);
drawHand();
glPopMatrix();
考試加油(?
Week05-3-1
今天教的第二個程式
在開啟一個GLUT專案
並複製今天的第一個程式過去
然後簡化成以下樣子
然後加入以下程式碼
void myCube()
{
glPushMatrix();
glScalef(0.5,0.2,0.2);
glutSolidCube(1);
glPopMatrix();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glColor3f(1,1,1);
glutSolidCube(1);
glPushMatrix();
glRotatef(angle,0,0,1);
glTranslatef(0.25,0,0);
glColor3f(0,1,0);
myCube();
glPopMatrix();
glutSwapBuffers();
angle++;
}
就會出現綠色的方塊在白色的大方塊裡面旋轉了如下圖~
然後再加入glTranslatef(0.5,0.5,0);
就可以改變綠色方塊的中心了~
然後再新增一個綠色方塊
一樣改變中心後並放到左上角
結果如下
Week05-3-2
沒有留言:
張貼留言