본문 바로가기

공부우우우우우/2019-1 컴퓨터그래픽스

OpenGl에 어서오세요

1. 예제: WhiteBox


#include <gl/glut.h>

void MyDisplay() {

glClear(GL_COLOR_BUFFER_BIT); // 컬러 버터의 초기화 색을 가함

glColor3f(1.0, 1.0, 1.0); // 칼라 지정

glBegin(GL_POLYGON); // 다각형 그리기

////3차원 좌표 상에 정점 4개 지정////

//화면좌표 ratio로 표현됨(가로세로 -1~1까지의 수치값)

glVertex3f(-0.5, -0.5, 0.0); // 좌하단 좌표

glVertex3f(0.5, -0.5, 0.0); // 우하단 좌표

glVertex3f(0.5, 0.5, 0.0); // 우상단 좌표

glVertex3f(-0.5, 0.5, 0.0); // 좌상단 좌표

glEnd();

glFlush();

}



int main(int argc, char** argv) {

glutInit(&argc, argv);

glutCreateWindow("OpenGL Drawing Example");

glutDisplayFunc(MyDisplay);

glutMainLoop();

return 0;

}




2. 예제2: 상자 속의 상자


#include <gl/glut.h>

void MyDisplay()

{

glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_POLYGON);

glColor3f(0.0, 0.0, 1.0); //초록색 사각형

glVertex3f(-1.0, -1.0, 0.0);

glVertex3f(1.0, -1.0, 0.0);

glVertex3f(1.0, 1.0, 0.0);

glVertex3f(-1.0, 1.0, 0.0);

glEnd();


glBegin(GL_POLYGON);

glColor3f(0.0, 1.0, 0.0); //초록색 사각형

glVertex3f(-0.5, -0.5, 0.0);

glVertex3f(0.5, -0.5, 0.0);

glVertex3f(0.5, 0.5, 0.0);

glVertex3f(-0.5, 0.5, 0.0);

glEnd();


glBegin(GL_POLYGON);

glColor3f(1.0, 0.0, 0.0);

glVertex3f(-0.25, -0.25, 0.0);

glVertex3f(0.25, -0.25, 0.0);

glVertex3f(0.25, 0.25, 0.0);

glVertex3f(-0.25, 0.25, 0.0);

glEnd();


glFlush();

}



int main(int argc, char** argv) {

glutInit(&argc, argv);

glutCreateWindow("OpenGL Drawing Example");

glutDisplayFunc(MyDisplay);

//glutDisplayFunc(MyDisplay2);

glutMainLoop();

return 0;

}





3. 상자 속의 상자 속의 삼각형


#include <gl/glut.h>

void MyDisplay()

{

glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_POLYGON);

glColor3f(1.0, 1.0, 0.0); //초록색 사각형

glVertex3f(-1.0, -1.0, 0.0);

glVertex3f(1.0, -1.0, 0.0);

glVertex3f(1.0, 1.0, 0.0);

glVertex3f(-1.0, 1.0, 0.0);

glEnd();


glBegin(GL_POLYGON);

glColor3f(1.0, 0.0, 1.0); //초록색 사각형

glVertex3f(-0.5, -0.5, 0.0);

glVertex3f(0.5, -0.5, 0.0);

glVertex3f(0.5, 0.5, 0.0);

glVertex3f(-0.5, 0.5, 0.0);

glEnd();


glBegin(GL_POLYGON);

glColor3f(0.0, 1.0, 1.0);

glVertex3f(-0.5, -0.5, 0.0);

glVertex3f(0.5, -0.5, 0.0);

glVertex3f(0.0, 0.5, 0.0);

glEnd();


glFlush();

}



int main(int argc, char** argv) {

glutInit(&argc, argv);

glutCreateWindow("OpenGL Drawing Example");

glutDisplayFunc(MyDisplay);

glutMainLoop();

return 0;

}