(OpenGL) 도넛,큐브,원,사각형 그리기
2006.09.20
자료 옮김
#include <GL/glut.h> /* includes gl.h glu.h */
void drawScene( );
int main ( int argc, char **arg )
{
//초기화 함수들 glutInit함수는 GLUT라이브러리를 초기화하고 윈도우 운영체제와 연결하여 하나의 세션을
//형성한다.
glutInitDisplayMode( GLUT_RGBA ); // 디스플레이 모드 설정, 윈도우의 기본 컬러모드를 RGB로 생성.
glutInitWindowPosition( 50,50 ); // 윈도우의 위치지정, gl 실행화면 창의 위치.
glutInitWindowSize ( 500,500 ); // 윈도우의 크기 지정,윈도우 폭, 윈도우 넓이.
glutCreateWindow( "Example2" ); // 윈도우 생성 (윈도우 이름)
glClearColor(1.0,1.0,0.0,1.0);//바탕화면의 색을 지정.네번쨰값은 불투명도 이다.
glMatrixMode(GL_PROJECTION);//투상행렬을(GL_PROJECTION) 변환대상으로 설정하라는 명령.
glLoadIdentity();//이 행렬에 일단 항등행렬을 실으라는 명령.
glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0);//윈도우 크기조절에 따른 왜곡을 방지.
//좌ㅜ우,하,상,전,후
glutDisplayFunc( drawScene ); // 출력 함수의 지정
glutMainLoop();
return 0;
}
void drawScene( )
{
glClear( GL_COLOR_BUFFER_BIT ); // 설정된 색으로 전체를 칠하기.즉 프레임 버퍼를 초기화 시키는 함수.
//초기화 시킬 색은 이전의 glclearColor이다.
glViewport(0,0,500,500);//윈도위창 자체를 하나의 뷰포트로 취급하기 위해 윈도우의 사이즈와 맞춰준다.
glColor3f(1.0,0.0,1.0);//사각형의 색깔.
glBegin(GL_POLYGON);
glVertex3f(-0.5,-0.5,0.0);
glColor3f(0.0,0.0,1.0);
glVertex3f(0.5,-0.5,0.0);
glColor3f(0.0,1.0,1.0);
glVertex3f(0.5,0.5,0.0);
glColor3f(0.0,1.0,0.0);
glVertex3f(-0.5,0.5,0.0);
//Teapot
//glutSolidTeapot(0.5);
glutWireTeapot(0.5);
//도넛그리기
//glutSolidTorus(0.2,0.4,6,8);//안쪽반지름,바깥쪽반지름,안쪽사이즈,rings
//glutWireTorus(0.2,0.4,6,100);
//큐브 그리기.
//glutSolidCube(0.7);
//glutWireCube(0.5);
//원 그리기
//glutSolidSphere(0.5,50,50);//첫인자는 크기, 두번째 인자가클수록 원처럼 보인다.
//glutWireSphere(0.7,10,20);//첫 인자는 크기를 나타낸다.
//두번쨰 인자는 원구중심을 통과하는 방사선, 세번쨰는 방사선이다.
glEnd();
glFlush(); // 화면에 출력하기
}
'Study > Graphics ' 카테고리의 다른 글
ray casting을 이해해 보자.. (0) | 2023.01.10 |
---|---|
Chromatic Aberration 4 (색수차) (0) | 2020.12.31 |
Chromatic Aberration 3 (색수차) (0) | 2020.12.29 |
Chromatic Aberration 2 (색수차) (0) | 2020.12.28 |
Chromatic Aberration 1 (색수차) (0) | 2020.12.28 |