Week2 2018/03/09
(1)主題:點、線、面、顏色
(2)親手寫OpenGL/GLUT(10行)
(3)頂點glVertex2f(x,f)
(4) 回家作業(20個頂點)
(5)Zuvio 問券填寫
----------------------------------------------------------------------------------------------
HW1 複習OpenGL and GLUT
->在Week 01裡有教如何開啟
-> https://2018graphicsa.blogspot.tw/2018/03/week-01_97.html
----------------------------------------------------------------------------------------------
HW2 用OpenGL寫程式
1.開啟GLUT的方式開啟一個新的專案,檔名為 「week02_mytriangle」
2.在左側的 Management -> projects -> Week02_ mytriangle -> Sources -> main.cpp
3.把main.cpp裡的程式碼都刪除,因在這裏面我們要自己寫程式
4.把程式打上:
#include <stdio.h>
#include <GL/glut.h>
///我們要使用比較高級的GLUT(OpenGL User Toolkit)
int main(int argc, char **argv)///主要的函式 main
{///int argc, char **argv這個參數的意思,是把作業系統的參數,塞進來
for(int i=0;i<argc;i++){///有幾個參數
printf("argv[%d]; %s\n", i, argv[i]);///輸出參數的字串的值
}
}
△ (int argc, char **argv)也可以寫成(int argc, char *argv[])形式是一樣的,前者用雙指標,後者用指標+矩陣,這樣寫起來看起來比教厲害喔!!!
△ int argc是設一個整數參數argc,int **argv or *argv[]是可以用字串把參數寫出,要寫出的原因是因為這可以在各個平台可以打開
△如未來有參加有甚麼程式的面試要寫出程式,寫出main函式時,也把( )裡面的都寫出來吧!
----------------------------------------------------------------------------------------------
HW3 用OpenGL寫出一個茶壺
1.用week02_Mytriangle同一個程式黨撰寫:
#include <stdio.h>
#include <GL/glut.h>
///(1)我們要使用比較高級的GLUT(OpenGL User Toolkit)
void display()
{
glClear(GL_COLOR_BUFFER_BIT);///(8)清理畫面
glutSolidTeapot(0.3);///(9)大小為0.3的茶壺
glutSwapBuffers();///(10)交換double buffers來顯示畫出的畫面
}
int main(int argc, char **argv)///(2)主要的函式 main
{///這個參數的意思,是把作業系統的參數,塞進來
glutInit(&argc, argv);///(3)初始Initialize你的glut參數設定
glutInitDisplayMode(GLUT_DOUBLE);///(4)顯示模式:double buffers(以後老師會再教其他的)
glutCreateWindow("Week02 Hello World Triangle");///(5)建立視窗
glutDisplayFunc(display);///(6)顯示函式display()用來畫圖的
glutMainLoop();///(7)主要的迴圈,用來控制程式
}
2.加入背景的color:
glClearColor(0,1,1,1);///清背景的color
glColor3f(248/255.0,199/255.0,134/255.0);///茶壺的color
///glColor3ub(248,199,20);///ub:unsigned char byte 0....255
△glColor3f and glColor3ub兩者是可以互替的
△glClearColor 有 4 個參數,1~3是 R G B,第4個是 α
△3f 也可以變成 4f,第4個也是 α
△gl開頭表示OpenGL的函式(cf. glut. 開頭是GLUT的函式)
△3f 3 表示3個參數, f表示float浮點數 0.0 ... 1.0
----------------------------------------------------------------------------------------------
HW4 用OpenGL寫出彩色三角形
1.把week02_Mytriangle茶壺的程式碼刪除,加上三角形的程式碼如下:
glBegin(GL_POLYGON);
glColor3f(1,0,0);///color
glVertex2f(-1,-1);///Vertex為程式裡"頂點"的專有英文,2f 因現在為平面
glColor3f(0,1,0);
glVertex2f(+1,-1);
glColor3f(0,0,1);
glVertex2f(0,1);
glEnd();
△這程式有縮排!!!要記得!!!寫完要寫glEnd();
----------------------------------------------------------------------------------------------
HW5 用OpenGL畫出圖案
與HW3相似
1.PyeongChang2018標誌為示範,畫出最左邊的三角形,圖形、顏色都要相同
2.把程式部分改成以下:
glBegin(GL_POLYGON);
glColor3ub(51,97,159);
glVertex2f((136-400)/400.0,-(463-400)/400.0);///左下角的點
glVertex2f((175-400)/400.0,-(190-400)/400.0);///上方左邊的點
glVertex2f((247-400)/400.0,-(213-400)/400.0);///上方右邊的點
glEnd();
如何找頂點
例如:找出最下腳的頂點由指標指向頂點上方,在葉面左下角中會看到像素的位址。
如何找出一樣的顏色
點選左上圈出的彩色選擇器 -> 點選所需要的圖案顏色 ->
右上方的編輯色彩 -> 可以看到此顏色的RGB
0
----------------------------------------------------------------------------------------------
回家作業: 20個點以上畫出一個圖
原圖和成品


所寫的程式碼









沒有留言:
張貼留言