2024年2月26日 星期一

賀week02_電腦圖學

電腦圖學 2024-02-26 Week02
1. 主題: 點、線、面、色彩
2. 課本範例
3. glColor3f(r,g,b);
4. glVertex3f(x,y,z);
5. glBegin(); ... glEnd();
6. 親手打造圖學程式


##點、線、面、色彩

 1.    下載課本的範例 https://jsyeh.orq/3dcq10        windows.zip 及 data.zip

2.在下載資料夾,把windows.zip => windows 資料夾,data.zip裡面的data拉到下載\windows 資料夾裡

3.執行Shape.exe便可操作今天的課本範例

4.mouse右鍵,在右邊可切換 點、線

5.mouse右鍵,在左邊切換大的頂點、逐個色彩

6.mouse左鍵,在右邊可按「綠色數字」 上下調整

可以改色彩

glColor3f(r,g,b)

可以改頂點座標

glVertex2f(x,y)


##要寫程式,試試看點線面色彩

1.moodle下載,freeglut (桌面還有一份),點開它

2.把freeglut 用mouse drag到桌面,就裝好了

3.把桌面\freglut\lib\libfreeglut.a 複製成libglut32.a

4.CodeBlocks:File-New-Project,選GLUT專案目錄選桌面,專案名 取week02_glut_color_teapot


#要設定色彩

1.     glColor3f(r,g,b);

2.    0,1,0 綠色,1,0,0紅色,0,0,1藍色,1,1,0黃色

3.    可用小畫家,來畫其他的色彩。使用滴管來吸色,使用「編輯色彩」來查看色彩的值。變成有小數點的float浮點數

4.    老師以阿尼亞的色彩為例,兩個不同大小的茶壺,用不同的色彩,畫出兩色的效果。

##畫三角形

1.     File-New-Project,GLUT專案,week02_glut_triangle

2.    一樣,把今天的10行貼下來,再加今天的第2個主角:頂點

3.    glBegin(GL_POLYGON);

4.    glColor3f( r, g, b);

5.    glVertex2f(x , y);

6.    glEnd();

7.    以上是期中考的10題其中的3題,佔30分。

8.    在真的實作時,會有很多組 glColor3f(r,g,b); 及 glVertex2f(x , y);

##用小畫家,幫我們找到「任意形狀」的頂點座標

1.    開啟小畫家,把圖片放上去。

2.    小畫家的做標裡,左上角是 0 , 0 , 右下角是300 , 300(假設圖片寬度300寬度300)

3.    關於座標,OpenGL 預設是「正中間 0 , 0」,右邊是+1,左邊是 -1。上面是+1,下面是 -1。

4.    把小畫家的(x座標 - 中心點200)/ 200.0 變成 OpenGL的座標 口訣:減一半、再除一半

5.    y座標比較麻煩 -(y座標 - 中心點200)/ 200.0,口訣:減一半、除一半,再加負號


1
2
3
4




十行程式碼:

#include <GL/glut.h>

void display()

{

    glutSolidTeapot(0.3);

    glutSwapBuffers();

}

int main(int argc,char*argv[])

{

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("GLUT Shapes");

    glutDisplayFunc(display);

    glutMainLoop();

}

沒有留言:

張貼留言