(1)開啟一個新的GLUT專案


(2)檔名設為week02_mytriangle

(3)這個步驟和之前一樣,之後Finish

(4)然後把程式碼全部刪除,重新撰寫

#include <stdio.h>
#include <GL/glut.h>
///(1)我們使用比較高級的GLUT (OpengGL 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)這個參數的意思, 是把作業系統的參數塞進來
{
glutInit(&argc, argv); ///(3)初始Initialize 你的glut參數設定
glutInitDisplayMode(GLUT_DOUBLE); ///(4)顯示模式:double buffers
glutCreateWindow("Week02 Hello World Triangle"); ///(5)建立視窗
glutDisplayFunc(display); ///(6)display()用來畫圖的
glutMainLoop(); ///(7)主要的迴圈, 用來控制程式
}
(5)茶杯和背景可以換顏色
◆ glClearColor(147/255.0, 253/255.0, 253/255.0, 1); ///清背景的顏色
◆ glColor3f(252/255.0, 221/255.0, 48/255.0); ///茶杯的顏色
* 顏色函式是RGB:glColor3f(紅, 綠, 藍);
背景顏色函式要注意第四個是透明程度,透明設0, 不透明設1。
想要的顏色可以從小畫家知道他的RGB ↓
上面 glColor3f 的f 是浮點數,所以要介於0到1之間,要除以255.0
或是用glColor3ub寫就不用換成浮點數。ex: glColor3ub(252, 221, 48);
↓ ↓ ↓著色後的茶壺 ↓ ↓ ↓
(6)畫彩色三角形
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(); ///結束畫
*glVertex2f(x座標, y座標); 是座標函式,範圍要在 -1 到 1 之間。
(7)用小畫家找出座標
小畫家的左下角有座標
↓ 程式碼 ↓
glBegin(GL_POLYGON); ///開始畫
glColor3ub(252, 221, 48); ///用小畫家來取顏色, 也可以取出座標
glVertex2f((137-400)/400.0, -(467-400)/400.0); ///如果做標示 137, 467 (800x800的圖)
glVertex2f((177-400)/400.0, -(194-400)/400.0); ///中心點不一樣, 要處理過:(137-400), -(467-400)
glVertex2f((243-400)/400.0, -(245-400)/400.0); ///-400...+400 再除400, 便會介於-1, +1
glEnd(); ///結束畫
燈燈燈 ↓ ↓ ↓





沒有留言:
張貼留言