STEP01
1.去jsyeh.org/3dcg10下載data跟win32,並解壓縮,把data資料夾丟進win32
2.以藍色車子為範例,理解程式碼從上往下讀,最底下藍色車子,上面一行長胖的,再上面一行轉動,最上面一行移動至右邊
3.把移動和旋轉按右鍵對調,並再進行一次從下往上讀,下面兩行沒有變動,一樣是藍色車子長胖的,上面一行移動至右邊,最上面一行為整個轉動
STEP02
1.開啟一個新專案
2.到github複製上周week04-1的程式碼,貼到新專案上
3.將旋轉軸改為Z軸,範例參考:glRotatef(angle,0,0,1);並執行看茶壺
4.再增加一個茶壺,並將它的glRotatef和glTranslatef對調,分別為兩個茶壺上不同顏色,以利觀察
1.執行老師寫的P語言檔案,畫個東西和手臂,按空白鍵想要讓他的手臂轉動,但轉得很怪
STEP04
1.開新專案,複製05-1的程式碼,改造成兩個方塊並拿掉旋轉
2.第2個方塊移到想放的地方,參考範例:右上角
3.給第2個方塊加上轉動,得到一個奇怪的旋轉
4.在旋轉程式碼底下加上glTranslatef(0.25,0.25,0);使旋轉中心移至中心
5.在轉動的前面也加上glTranslatef(0.25,0.25,0);使整個東西放到右上角
#include <GL/glut.h>
float angle = 0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1,1,0);//上色
glPushMatrix();
//glTranslatef(0.8,0,0);
//glRotatef(angle,0,0,1);//改Z軸旋轉
glutSolidCube(0.5);
glPopMatrix();
glPushMatrix();
glTranslatef(0.25,0.25,0);//把東西掛到右上角
glRotatef(angle,0,0,1);//轉到
glTranslatef(0.25,0.25,0);//移到中心
glColor3f(0,1,1);//上色
glutSolidCube(0.5);
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char *argv[])//main()主函式 進階版
{
glutInit(&argc,argv);//把參數送給glutInit初始化
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);//雙緩衝區+3D深度功能
glutCreateWindow("week05");//開GLUT視窗
glutDisplayFunc(display);//顯示用的函式
glutIdleFunc(display);
glutMainLoop();
}

沒有留言:
張貼留言