(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
TAGS.

Comments