2023年2月23日 星期四

Fafa的奇妙冒險

 Week 02

Week 02-1.1

寫出第一個GLUT檔案


Step 1:先依照week01的方式建立一個GLUT檔案

week01連結:連結

Step 2:把程式碼改成如下圖


以下為程式碼:

#include<GL/glut.h>
void display()
{
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}

int main(int argc,char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("GLUT Shapes");
    glutDisplayFunc(display);
    glutMainLoop();
}



Step 3:完成!







講解:

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

arg為 引數 argument 的縮寫

int argc 表示接受小黑視窗輸入的引數個數

char *argv[] 表示接受小黑視窗輸入的引數各字





Week 02-1.2

幫茶壺加顏色

Step 1:display()函數中 增加glColor3f

更改後的display()函數的程式碼如下:


void display()
{
    glColor3f(1,1,0);
    glutSolidTeapot(0.5);

    glColor3f(0,1,0);
    glutSolidTeapot(0.3);

    glutSwapBuffers();
}



Step 2:完成後的程式碼如下圖









Step 3:執行,完成!





講解:

glColor3f() 的格式為: glColor3f(R,G,B)

其中 RGB參數的最大值為 1 最小值為 0



Week 02-2.1

三角背景茶壺


Step 1:display()內容改成如下

程式碼:

void display()
{
    glColor3f(0,1,0);
    glBegin(GL_POLYGON);
    glVertex2f(0,1);
    glVertex2f(-1,-1);
    glVertex2f(+1,-1);

    glEnd();

    glColor3f(1,1,0);
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}


Step 2:完成後如下圖









Step 3:執行,完成!





Week 02-2.2

彩色三角背景茶壺

Step 1:將display()程式碼改成如下:

程式碼:

void display()
{
    glColor3f(0,1,0);
    glBegin(GL_POLYGON);
    glColor3f(1,0,0);glVertex2f(0,1);
    glColor3f(0,1,0);glVertex2f(-1,-1);
    glColor3f(0,0,1);glVertex2f(+1,-1);
    glEnd();

    glColor3f(1,1,0);
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}


Step 2:改完後如下圖










Step 3:執行,完成!







Week 03-1

利用小畫家自訂座標

程式碼及執行結果如下圖:



display()函數詳細程式碼如下

void display()
{
    glColor3f(233/255.0,141/255.0,128/255.0);
    glBegin(GL_POLYGON);
    glVertex2f((65-100)/100.0,-(54-100)/100.0);
    glVertex2f((34-100)/100.0,-(138-100)/100.0);
    glVertex2f((59-100)/100.0,-(138-100)/100.0);
    glVertex2f((87-100)/100.0,-(53-100)/100.0);
    glEnd();

    glutSwapBuffers();
}

本節使用小畫家輔助操作,實際做法如下:


座標查詢:

Step 1:將圖片拉入小畫家中


Step 2:將圖片調整成200*200px(像素)的大小



Step 3:將滑鼠游標移置欲查詢的像素位置,並觀察左下角像素位置





Step 4:把像素位置移動至CodeBlock 並算換

小畫家位置換算規則如下:
1.左上角的座標值為 (0,0)
2.右下角的座標值為 (200,200)
3.左右為 x軸
4.上下為 y軸
5.小畫家座標沒有負數


CodeBlock位置換算規則如下:
1. 左右為x軸
2. 上下為 y軸
3. 最左側的 x值為-1,最右側的 x值為 1
4. 最底部的y值為 -1,最頂部的 y值為 1
5. 中心點座標為 ( 0,0 )


利用小畫家查詢顏色

Step 1:點選工具欄的「滴管」功能







Step 2:點選後可看到顏色自動切換成點選的顏色




Step 3:點選編輯色彩




Step 4:點選編輯色彩後,可看到右下角的RGB的詳細數值




Step 5:換算成CodeBlock的參數

小畫家的色彩換算規則如下
1.最小值為0
2.最大值為255

CodeBlock的色彩換算規則如下:
1.最小值為0
2.最大值為1

因此在進行色彩換算時,需要輸入為:

原本的色彩參數(RGB)-最大值(255) / 255

沒有留言:

張貼留言