week10-1_glutWireCube_mybody_myArm
1. moodle下載 freeglut 拖到桌面
2. 把桌面\freglut\lib\libfreeglut.a 複製成 libglut32.a
3. CodeBlocks開GLUT專案, 目錄選桌面, 專案名取week10-1_glutWireCube_mybody_myArm
5. 貼上上週week09-3的程式碼
6. display裡只留下wirecube程式碼, 大小改成1
4. 再加上另一個綠色方形當成手臂
glPushMatrix();
glColor3f(0,1,0);
glScalef(1, 0.4 ,0.4);
glutWireCube(0.3);///myArm()
glPopMatrix();
}
void myBody()
{
glPushMatrix();
glColor3f(1,0,0);
glutWireCube(0.6);///myBody()
glPopMatrix();
}
week10-2_rotate_myArm
1.CodeBlocks開GLUT專案, 目錄選桌面, 專案名取week10-2_rotate_myArm
3. 貼上上一個week10-1的程式碼
4. 加上程式碼讓中間綠色方塊旋轉
float angle = 0;///旋轉的角度
5. display裡加:
glPushMatrix();
glRotatef(angle++, 0, 0, 1);
myArm();
glPopMatrix();
6. main函式裡加:
glutIdleFunc(display);///有空就旋轉
week10-3_rotate_translate_myArm
1.CodeBlocks開GLUT專案, 目錄選桌面, 專案名取week10-3_rotate_translate_myArm
3. 貼上上一個week10-2的程式碼
4. 加上程式碼把綠色方塊右移, 並讓旋轉中心放到正中心
glTranslatef(0.15, 0, 0);///右移
week10-4_translate_rotate_translate_myArm
1.CodeBlocks開GLUT專案, 目錄選桌面, 專案名week10-4_translate_rotate_translate_myArm
3. 貼上上一個week10-3的程式碼
4. 加上程式碼把綠色方塊移
glTranslatef(0.3, 0.3, 0);///(3)把旋轉中的東西掛到肩上
小考: T-R-T 轉動
glPushMatrix();
glTranslatef(0.3, 0.3, 0);///(3)把旋轉中的東西掛到肩上
glRotatef(angle++, 0, 0, 1);///(1)旋轉
glTranslatef(0.15, 0, 0);///(2)移動旋轉中心
myArm();
glPopMatrix();
week10-5_TRT_TRT_myArm
1.CodeBlocks開GLUT專案, 目錄選桌面, 專案名week10-5_TRT_TRT_myArm
3. 貼上上一個week10-4的程式碼
4. 在myArm下面加上重複一段程式碼就可以再新增一段手臂
glPushMatrix();
glTranslatef(0.3, 0.3, 0);///(3)掛到肩上
glRotatef(angle++, 0, 0, 1);///(1)旋轉
glTranslatef(0.15, 0, 0);///(2)移動旋轉中心
myArm();///右上手臂
glPushMatrix(); ///多新增的一段
glTranslatef(0.15, 0, 0);///(3)掛到手肘上
glRotatef(angle++, 0, 0, 1);///(1)旋轉
glTranslatef(0.15, 0, 0);///(2)移動旋轉中心
myArm();///右下手臂
glPopMatrix();
glPopMatrix();
week10-6_left_right_myArm
1.CodeBlocks開GLUT專案, 目錄選桌面, 專案名week10-6_left_right_myArm
3. 貼上上一個week10-5的程式碼
4. 在右手下面加上複製一段程式碼並改一下座標就能變左手
glPushMatrix();
glTranslatef(-0.3, 0.3, 0);///(3)掛到肩上
glRotatef(angle++, 0, 0, 1);///(1)旋轉
glTranslatef(-0.15, 0, 0);///(2)移動旋轉中心
myArm();///我的左上手臂
glPushMatrix();
glTranslatef(-0.15, 0, 0);///(3)掛到手肘上
glRotatef(angle++, 0, 0, 1);///(1)旋轉
glTranslatef(-0.15, 0, 0);///(2)移動旋轉中心
myArm();///我的左下手臂
glPopMatrix();
glPopMatrix();
week10-7_mouse_motion_angle_myArm
1.CodeBlocks開GLUT專案, 目錄選桌面, 專案名week10-7_mouse_motion_angle_myArm
3. 貼上上一個week10-6的程式碼
4. 把4個angle++都改成angle(用滑鼠操控)
5. 在main()加上一行程式碼
glutMotionFunc(motion);///加上mouse motion
6. 加一個 motion 函式
void motion(int x, int y)
{
angle = x;
glutPostRedisplay();
}
7. 最後可以用滑鼠拖曳讓手臂擺動
week10-8_mouse_motion_angle_2_myArm
1.CodeBlocks開GLUT專案, 目錄選桌面, 專案名week10-8_mouse_motion_angle_2_myArm
3. 貼上上一個week10-7的程式碼
4. 把 display() 裡的左手的兩個 angle 改成 -angle
沒有留言:
張貼留言