2024年3月14日 星期四

電腦圖學week04

 ## 旋轉茶壺並更改背景顏色

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.把"大小沒變的藍色車子"搬到左邊去


##茶壺轉大圓圈

1.複製week04_translate_rotate_scale的程式碼

2.增加glRotatef(angle++,0,0,1);///轉動中的(交換)








沒有留言:

張貼留言