2017年9月21日 星期四

LLF的計圖學習筆記_Week_02

雜項:apple,linux內建OpenGL
window#include <GL/glut.h>連結GLUT函式庫
--------------------------程式碼---------------------------------------------
int main(int argc, char *argv[])
argc參數數量 argv[]參數存為字串
{
    glutInit(&argc,argv);
    啟始化glut

    glutInitDisplayMode(GLUT_DEPTH|GLUT_DOUBLE|GLUT_RGBA);
    設定顯示模式

    glutCreateWindow("window_name");
    建立glut視窗(視窗名)

    glutMainLoop();
    主要迴圈

    return 0;
}
-----------------------------------------------------------------------------
雜項:
GLUT函式說明
https://www.opengl.org/resources/libraries/glut/spec3/spec3.html
-----------------------------------------------------------------------------
void display()
{
    glClearColor(1,0,0,0);
    設定(標示)背景顏色(R,G,B,半透明度)

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    清理背景顏色

    glColor3f(1,0,1);
    設定(標示)物件顏色(R,G,B)
    f為浮點數 0~1

    
glutSolidTeapot(0.3);
    畫實心茶壺(大小)

    glutSwapBuffers();
    交換前、後緩衝區
}

glutDisplayFunc(display);
顯示函式
加在MainLoop

-----------------------------------------------------------------------------
glBegin(GL_POLYGON);
開始畫圖(指定為多邊形)

glVertex3f(1,1,0);
glVertex3f(-1,1,0);
glVertex3f(0,-1,0);
頂點們(X,Y,Z)

glEnd();

結束畫圖
小技巧(漸層)
glBegin(GL_POLYGON);
glColor3f(0,0,1);
glVertex3f(1,1,0);
glColor3f(1,0,0);
glVertex3f(-1,1,0);
glColor3f(0,1,0);
glVertex3f(0,-1,0);
glEnd();

沒有留言:

張貼留言