教材地點:
https://jsyeh.org/3dcg10/
1. 下載資料:
a. 05/04 Examples:[data]
b. 05/04 Examples:[win32]
2. 範例程式碼:
windows→Shapes
3. GLUT程式1 :改變茶壺顏色 #include <GL/glut.h> //使用GLUT函式庫
void display(){
glColor3f(0.71,1,1); //改變顏色
glutSolidTeapot(0.5);
glutSwapBuffers();
}
int main(int argc, char *argv[]){ //main()函式
glutInit(&argc, argv); //開啟GLUT功能
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("電腦圖學第01周"); //開一個GLUT視窗
glutDisplayFunc(display); //display()函式畫圖
glutMainLoop(); //主要的迴圈 不結束程式
}
因為glColor3f(r,g,b)的三個參數僅可以放0~1間的浮點數,所以我們可以使用 /255.0 做整數轉浮點數的操作
glColor3f(255 /255.0, 255 /255.0 , 180 /255.0);
4. GLUT程式2 :繪製彩色三角形
黃色畫線處為繪製多邊形的方法
#include <GL/glut.h> //使用GLUT函式庫
void display(){
glBegin(GL_POLYGON); //開始畫
glColor3f(1,0,0); glVertex2f(0,1);
glColor3f(0,1,0); glVertex2f(1,-0.6);
glColor3f(0,0,1); glVertex2f(-1,-0.6);
glEnd(); //結束畫
glutSwapBuffers();
}
int main(int argc, char *argv[]){ //main()函式
glutInit(&argc, argv); //開啟GLUT功能
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("電腦圖學第01周"); //開一個GLUT視窗
glutDisplayFunc(display); //display()函式畫圖
glutMainLoop(); //主要的迴圈 不結束程式
}
5. GLUT程式3 :使用小畫家工具輔助作圖
座標點可以使用小畫家找出來,先知道圖片大小,然後使用公式將頂點繪製出來,後繪製圖塊出來
口訣:座標點減一半除一半
glVertex2f((座標點x-圖片x軸像素值大小/2)/圖片x軸像素值大小/2,
-(座標點y-圖片y軸像素值大小/2)/圖片y軸像素值大小/2);
6. GLUT程式4 :繪製圓形使用三角函數繞著圓心做圖(使用座標點( cos() ,sin() ))可獲得圓形
#include <GL/glut.h> //使用GLUT函式庫
#include <math.h>
void display(){
glBegin(GL_POLYGON); //開始畫
for(float a=0; a<=3.1415926*2; a+=0.01)
glVertex2f( cos(a),sin(a) );
glEnd(); //結束畫
glutSwapBuffers();
}
int main(int argc, char *argv[]){ //main()函式
glutInit(&argc, argv); //開啟GLUT功能
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("電腦圖學第01周"); //開一個GLUT視窗
glutDisplayFunc(display); //display()函式畫圖
glutMainLoop(); //主要的迴圈 不結束程式
}
Do You feel alone
Can you hear me now?
Your mind is far away,still on the earth
Many times you are hurting your self
You can't be just a life on the shelf
And I say why we can't stop all this sacrifice?
I know that all the lies became the stone in your heart
I wonder how long you gonna survive
We didn't see all it's meaning
----Into the Sky ,澤野 弘之