2017年9月21日 星期四

翁驊成的學習筆記 week 02

week 02 第一個圖學程式

Step 1.茶壺

#include <GL/glut.h>

void display()
{
glClearColor(1,1,1,1); //清背景顏色 (R,G,B,A) ex:紅1000
                                            //參考1
glClear(GL_COLOR_BUFFER_BIT | GL.DEPTH_BUFFER_BIT);

glColor3f(1,0,1); //物件色彩(紫) 
                                    //3是3個參數,f是0.0-1.0之間的浮點數
                                    //參考2

glutDolidTeapot(0.3); //茶壺 glut外掛

glutSwapBuffers(); //交換繪圖Buffers
}

int main(int argc, char *argv[]) //主程式函式,吃argc參數數量,argv是參數的全部,用陣列存
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); //設定顯示模式
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display); //註冊display
glutMainLoop(); //主要迴圈,一直跑
}


1.


2.



Step 2.三角形


#include <GL/glut.h>

void display()
{
glClearColor(1,0,0,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        glColor3f(1,0,1); //物件色彩(紫)
                     
glBegin(GL_POLYGON); //開始畫(多邊形)
glVertex3f(1,1,0); //三個頂點 //3是x,y,z 3個參數,f是0.0-1.0之間的浮點數
glVertex3f(-1,1,0);
glVertex3f(0,-1,0);
glEnd(); //結束畫
        //參考3

glutSwapBuffers();
}

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
}

3.



Step 3.彩色三角形

#include <GL/glut.h>

void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glBegin(GL_POLYGON); //開始畫(多邊形)
        //彩色三角形在頂點前用函式glColor3f(R,G,B);
glColor3f(1,0,0); glVertex3f(1,1,0); //三個頂點
glColor3f(0,1,0); glVertex3f(-1,1,0);
glColor3f(0,0,1); glVertex3f(0,-1,0);
        //參考4
glEnd(); //結束畫

glutSwapBuffers();
}

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
}

4.

沒有留言:

張貼留言