## 旋轉茶壺並更改背景顏色
1. 桌面有「葉正聖老師上課用軟體」 freeglut 安裝(拉到桌面),再把 lib的 libfreeglut.a 複製成 libglut32.a
2. CodeBlocks File-New-Project, GLUT專案, week04_mouse_glScalef
3. 把之前的的10行程式貼進來
4. 再加上上周的week03_mouse_glRotatef的部分程式:
float angle=0;
glPushMatrix();
glRotatef(angle,0,0,1);
glutSolidTeapot( 0.3 );
glPopMatrix();
## 放大茶壺
1. 註解掉旋轉角度的:
float angle=0;
glRotatef(angle,0,0,1);
angle=x;
2.增加縮放茶壺的程式:
float s=1;///縮放比例
glScalef(s,s,s);///縮放
s = 1 + (x-150)/150.0;
## 顯示位置並旋轉
1.增加的程式:
#include <stdio.h>///跑得出輸出
void keyboard(unsigned char key,int x,int y)
{
printf("key:%c x:%d y:%d\n",key,x,y);
}
glutKeyboardFunc(keyboard);
2.點按鍵盤會顯示出位置
3.增加的程式:
float angle=0,oldX=0;
glPushMatrix();
glRotatef(angle,0,0,1);
glutSolidTeapot(0.3);
glPopMatrix();
void mouse(int button,int state,int x,int y)
{
oldX=x;///當mouse按下時,記錄他的位置
}
void motion(int x,int y)
{
angle+=(x-oldX);
oldX=x;
display();
}
4.便可以旋轉茶壺了
## Transformation
下載 data.zip 下載 win32的zip
windows.zip
=> 下載\windows\Transformation.exe
data.zip
=> 下載\windows\data\一堆模型
滑鼠右鍵點選右邊螢幕可更換物體
左右拉動數字可更改數值
## 移動車子
1.把"轉動中的高高瘦瘦的藍色車子"搬到右邊去
##茶壺自轉
1.貼上week04_keyboard_mouse_motion的程式
2.刪減掉一些,只留下部分
3.加入:
glRotatef(angle++,0,0,1);
glutIdleFunc(display);
4.便會自動旋轉
5.再加入:
glClearColor(1.0,1.0,0.9,1.0);///背景顏色
glPushMatrix();
glTranslatef(0.8,0,0);///放到右邊去
glRotatef(angle++,0,0,1);///轉動中的
glScalef(0.3,0.3,0.3);///小小的
glColor3f(0,1,0);///綠色茶壺
glutSolidTeapot(0.3);///茶壺
6.更改茶壺和背景顏色、茶壺變小並且在右邊自己旋轉
##交換程式碼
1.按右鍵(swap translate)交換程式碼
2.把"大小沒變的藍色車子"搬到左邊去
##茶壺轉大圓圈
沒有留言:
張貼留言