OpenGL 設定檔名與儲存地↓
OpenGL GLUT 設定檔名與儲存地↓
忘了一些沒關係,詳細看Week01
(GO!( • ω•́ )
(2)用GLUT做茶杯
1.先開啟 New Project的OpenGL GLUT!
2.然後將main.cpp裡面的程式"全部刪掉"!!(Ctrl+A後Backspace鍵,馬上搞定!)
3.開始自己第一個GLUT的程式!!先打上開頭檔與主要函式Main。
[
#include <GL/glut.h>
int main(int argc,char **argv)
{
......;
}
是為了把作業系統的參數放入,
而一般常見為↓
int main()
{
......;
}
或是↓
int main(void)
{
......;
}
也可以這樣寫↓
int main(int argc,char *argv[])
{
......;
}
argc為表示輸入的參數個數。
argv為表示輸入的參數。
]
4.打上茶杯的程式碼。(建議可以另開另一個GLUT檔去對照)
[
程式碼:
#include <stdio.h>
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
// 為清理畫面
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
// 為清理畫面
glutSolidTeapot(0.3);
//本身就有直接畫出茶壺的程式,()為設定大小
//本身就有直接畫出茶壺的程式,()為設定大小
glutSwapBuffers();
//交換double buffers 來顯示畫出的東西
}
int main(int argc,char **argv)
{
glutInit(&argc, argv);
int main(int argc,char **argv)
{
glutInit(&argc, argv);
//初始Init(Initialize)GLUT參數設定
glutInitDisplayMode(GLUT_DOUBLE);
//顯示模式為double buffers
//顯示模式為double buffers
//(其他像是 GLUT_RGB與GLUT_DEPTH 老師以後會教)
glutCreateWindow("QWQ 你好我是視窗名稱!!");
//建立視窗,("...")裡的輸入為視窗顯示名稱
//建立視窗,("...")裡的輸入為視窗顯示名稱
glutDisplayFunc(display);
//顯示函式display()用來畫圖的
//顯示函式display()用來畫圖的
glutMainLoop();
//主要的迴圈,用來控制程式
}
]
對照原本的GLUT程式↓
(在主要函式Main裡,紅框的程式有些眼熟~~)
(3)物體上色與背景色(依舊用茶杯)
1.先物體上顏色,用glColor()
(PS:程式碼前面的gl是代表OpenGL函式)
[
glColor3f(64/255.0,128/255.0,128/255.0);
顏色函式( R(紅) , G(綠) , B(藍) );
↑glColor 3 f 的 3 為可變的參數個數,
f 為浮點數,所以後方()裡
要顯示成浮點數(介於00~01)必須/255.0。
另外,還可以用glColor3ub();↓
glColor3ub(64,128,128);
顏色函式(R(紅),G(綠), B(藍));
↑glColor 3 ub 的 3 一樣為可變的參數個數,
ub 的全名為 Unsigned char byte,
可以直接輸入RGB的數據不用變成浮點數。
]
!!!PS:想要取顏色的RGB數據,可以使用小畫家↓
好用的滴管,吸取你所擁有的顏色,只怕你沒有範例可以吸取,
沒有範例也沒關係,打開編輯顏色,讓你直接調成你想要的,
而RGB的數據都在下面,直接拿取數據就好,
實用的小畫家,你值得擁有。
2.用好物體上色換背景上色
glClearColor(0/255.0,128/255.0,192/255.0,0);
背景顏色函式(R(紅),G(綠),B(藍),Alpha(透明程度));
↑格式與物體上色的函式差不多,
而()內要/255.0變浮點數是因為要"交換double buffers 來顯示畫出的東西",
要注意()裡最後的Alpha絕對不可以缺少,不透明就設為1。
(4)用GLUT 畫出彩色三角形
1.使用 glBegin(GL_POLYGON); 與 glEnd(); 來畫
[
程式碼:
glBegin(GL_POLYGON);
glColor3f(1,0,0); glVertex2f(-1,-1);
glColor3f(0,1,0); glVertex2f(1,-1);
glColor3f(0,0,1); glVertex2f(0,1);
glEnd();
glColor3f(1,0,0); glVertex2f(-1,-1);
glColor3f(0,1,0); glVertex2f(1,-1);
glColor3f(0,0,1); glVertex2f(0,1);
glEnd();
↑如果要畫多邊形就必須用
glBegin(GL_POLYGON);
來做開始!
glEnd();
來做結束!
而其中裡面的 glColor3f(R,G,B); 的物體上色函式,
以在上方教過,可以網上找尋,
再來是 glVertex2f( x的座標 , y的座標 ); 的函式,
為設定頂點座標(數據範圍-1~1)。
]
PS:小畫家也可以找到圖的座標↓
左下方為座標,再根據畫布大小作為比例!!
這樣是不是就可以用程式來畫畫~果然是資訊科的阿~別人畫筆我們程式XDD











沒有留言:
張貼留言