Week02點線面色彩(茶壺練習)
Step01
開啟 "2022葉正聖老師上課軟體"資料夾裡面的"freeglut-MinGW-3.0.0-1.mp.zip"
將裡面的freeglut資料夾拉到桌面上
Step02
將libfreeglut.a複製改檔名成 libglut32.a
打開File - New - Project 點選GLUT project
點選... 選擇桌面 ,再修改檔名,按Next,按完成
點選... 選擇桌面 ,再修改檔名,按Next,按完成
Step03
用程式畫出一個茶壺
程式碼:
#include <GL/glut.h>void display(){ glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3(這一行原創的,其他行都是複製來的) glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方}
int main(int argc, char *argv[]){ glutInit(&argc, argv); ///把GLUT開起來 (GLUT初始化) glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); ///上面這行是把顯示的模式設定好 glutCreateWindow("GLUT Shapes"); ///要開視窗 glutDisplayFunc(display); ///要顯示的對應函式 glutMainLoop(); ///最後用main迴圈,壓在最後面}step04
程式碼:
#include <GL/glut.h>
void display()
{
glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3(這一行原創的,其他行都是複製來的)
glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv); ///把GLUT開起來 (GLUT初始化)
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
///上面這行是把顯示的模式設定好
glutCreateWindow("GLUT Shapes"); ///要開視窗
glutDisplayFunc(display); ///要顯示的對應函式
glutMainLoop(); ///最後用main迴圈,壓在最後面
}
step04
加glColor.f(r,g,b); 來更改顏色
程式碼:
#include <GL/glut.h>void display(){ glColor3f(1,1,0);///黃色 glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3 glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方}
int main(int argc, char *argv[]){ glutInit(&argc, argv); ///把GLUT開起來 (GLUT初始化) glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); ///上面這行是把顯示的模式設定好 glutCreateWindow("GLUT Shapes"); ///要開視窗 glutDisplayFunc(display); ///要顯示的對應函式 glutMainLoop(); ///最後用main迴圈,壓在最後面}
#include <GL/glut.h>
void display()
{
glColor3f(1,1,0);///黃色
glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3
glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv); ///把GLUT開起來 (GLUT初始化)
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
///上面這行是把顯示的模式設定好
glutCreateWindow("GLUT Shapes"); ///要開視窗
glutDisplayFunc(display); ///要顯示的對應函式
glutMainLoop(); ///最後用main迴圈,壓在最後面
}
step05
加綠色進去,調整大小
程式碼:
#include <GL/glut.h>void display(){ glColor3f(0,1,0);///綠色 ///glutSolidTeapot(0.5); glBegin(GL_POLYGON);///開始畫 glColor3f(1,0,0); glVertex2f( 0, 1);///紅色頂點Vertex glColor3f(0,1,0); glVertex2f(-1,-1);///綠色頂點Vertex glColor3f(0,0,1); glVertex2f( 1,-1);///藍色頂點Vertex glEnd();///結束畫
glColor3f(1,1,0);///黃色 glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3(這一行原創的,其他行都是複製來的) glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方}int main(int argc, char *argv[]){glutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);glutCreateWindow("GLUT Shapes");glutDisplayFunc(display);glutMainLoop();}
step06
新增開始畫 glBegin(GL_POLYGON) 、結束畫 glEnd()
step07
畫頂點 用 glVertex2f(x,y)
程式碼:
#include <GL/glut.h>void display(){ ///glColor3f(0,1,0);///綠色 ///glutSolidTeapot(0.5);///畫出一個實心的茶壺,它的大小是0.5 glBegin(GL_POLYGON);///開始畫出多邊形 glVertex2f( 0, 1);///頂點 Vertex glVertex2f(-1,-1);///頂點 Vertex glVertex2f(+1,-1);///頂點 Vertex glEnd();///結束畫
glColor3f(1,1,0);///黃色 glutSolidTeapot(0.3);///畫出一個實心的茶壺,它的大小是0.3 glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方}int main(int argc, char *argv[]){ ///上面是特別的main函式,有很多參數 glutInit(&argc, argv);///把GLUT開起來 glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///把顯示的模式設定好 glutCreateWindow("GLUT Shapes");///要開視窗 glutDisplayFunc(display);///要顯示的對應函式 glutMainLoop();///最後用main迴圈,壓在最後面}
程式碼:
#include <GL/glut.h>
void display()
{
///glColor3f(0,1,0);///綠色
///glutSolidTeapot(0.5);///畫出一個實心的茶壺,它的大小是0.5
glBegin(GL_POLYGON);///開始畫出多邊形
glVertex2f( 0, 1);///頂點 Vertex
glVertex2f(-1,-1);///頂點 Vertex
glVertex2f(+1,-1);///頂點 Vertex
glEnd();///結束畫
glColor3f(1,1,0);///黃色
glutSolidTeapot(0.3);///畫出一個實心的茶壺,它的大小是0.3
glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc, char *argv[])
{ ///上面是特別的main函式,有很多參數
glutInit(&argc, argv);///把GLUT開起來
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///把顯示的模式設定好
glutCreateWindow("GLUT Shapes");///要開視窗
glutDisplayFunc(display);///要顯示的對應函式
glutMainLoop();///最後用main迴圈,壓在最後面
}
step08
按下播放鍵
Week02-2
step01 每個頂點加上顏色,按下播放鍵
程式碼:
#include <GL/glut.h>void display(){ glColor3f(0,1,0);///綠色 ///glutSolidTeapot(0.5); glBegin(GL_POLYGON);///開始畫 glColor3f(1,0,0); glVertex2f( 0, 1);///紅色頂點Vertex glColor3f(0,1,0); glVertex2f(-1,-1);///綠色頂點Vertex glColor3f(0,0,1); glVertex2f( 1,-1);///藍色頂點Vertex glEnd();///結束畫
glColor3f(1,1,0);///黃色 glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3 glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方}int main(int argc, char *argv[]){glutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);glutCreateWindow("GLUT Shapes");glutDisplayFunc(display);glutMainLoop();}
程式碼:
#include <GL/glut.h>
void display()
{
glColor3f(0,1,0);///綠色
///glutSolidTeapot(0.5);
glBegin(GL_POLYGON);///開始畫
glColor3f(1,0,0); glVertex2f( 0, 1);///紅色頂點Vertex
glColor3f(0,1,0); glVertex2f(-1,-1);///綠色頂點Vertex
glColor3f(0,0,1); glVertex2f( 1,-1);///藍色頂點Vertex
glEnd();///結束畫
glColor3f(1,1,0);///黃色
glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3
glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
}
Week02-3畫皮卡丘
- 上網找皮卡丘的圖
- 截圖至小畫家
- 設定成200x200的圖
- 左下角可看座標
- 再換算一下
- 色彩可用滴管吸,編輯色彩
- 換算色彩法:除以255.0
- 座標位置口訣:減一半、除一半、y變負號
Week02-4 畫出圓形
Step01 先用小畫家大致描繪出來
Step02 用for迴圈 "for(float a = 0; a<3.1415926; a+=0.01)"寫出半圓
Step03 要畫出一個圓(把兩個半圓拚在一起) "a<2*3.1415926"
Step04 再用cos() sin()畫出一個圓
1. 開始畫 glBegin(GL_POLYGON)
2. 結束畫 glEnd()
3. 畫頂點 用 glVertex2f(x,y)


















沒有留言:
張貼留言