ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 실습 1주차
    정리필요2 2008. 9. 1. 23:44

    처음에 할일!!


    다음 파일을 주어진 데이터 패스에 복사!


    *화일구성 6개
    GLUT.H
    GLUT.lib
    GLUT32.lib
    GLUT.dll
    GLUT32.dll
    test1.cpp

    ① 위 화일들을 지정 디렉토리에 복사한다.
    ▶ GLUT.H →C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include
              →C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\GL

    ▶ GLUT.lib GLUT32.lib →C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib
      
    ▶ GLUT.dll GLUT32.dll →glu.dll(glu32.dll) 화일이 있는 디렉토리에 복사
          (windows xp는 c:\windows\system32에 복사)


    ② VC++ 실행한후
    ▶ 프로젝트 -> 속성 -> 링커 -> 입력 -> 추가 종속성 탭
    opengl32.lib glu32.lib glut32.lib

    ③ console모드로 프로젝트를 만들고 프로젝트에 test1.cpp 추가하여 컴파일한다.

    참고) GLUT 3.7버전은 따로 2번의 과정을 할 필요 없이 GLUT.H만 include하면 알아서 링크해줍니다.
          (포함되어 있는 glut의 버전은 3.7입니다.)


    1주차 실습 소스!


    // 응용 프로그램 마법사를 사용하여 생성한 VC++ 응용 프로그램
    // 프로젝트의 기본 프로젝트 파일입니다.

    #include "stdafx.h"
    #include <GL/glut.h>

    #using <mscorlib.dll>

    using namespace System;

    void display()
    {
      glClear( GL_COLOR_BUFFER_BIT );
     
      glBegin( GL_POINTS );
      for( int i=-150; i<150; i++)
      for( int j=-150; j<150; j++)
      { 
       glVertex2i( i,j);
     
       if ( j<-50 && j<i && j<-i ) glColor3d( 1.0, 0.0, 0.0 ); // red
       else if ( i<-50 && j>i && j<-i ) glColor3d( 0.0, 1.0, 0.0 ); // green  
       else if ( i> 50 && j<i && j>-i ) glColor3d( 0.0, 0.0, 1.0 ); // blue
       else if ( j> 50 && j>i && j>-i ) glColor3d( 1.0, 1.0, 0.0 ); // yellow
       else     glColor3d( 0.0, 1.0, 1.0 ); // cyan
       
       
      }
      glEnd();
      glFlush();
    }

    int main( int argc, char **argv )
    {
      glutInit( &argc, argv );
      glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH );
      glutInitWindowPosition( 100, 100);
      glutInitWindowSize( 300,300 );
      glutCreateWindow( "square" );

      glClearColor( 0.0, 0.0, 0.0, 0.0 );
      glMatrixMode( GL_PROJECTION );
      glLoadIdentity();
      glOrtho( -150.0, 150.0, -150.0, 150.0, -1.0, 1.0 );

      glutDisplayFunc( display );
      glutMainLoop();

      return 0;
    }




    실습!!!

     

    // 응용 프로그램 마법사를 사용하여 생성한 VC++ 응용 프로그램
    // 프로젝트의 기본 프로젝트 파일입니다.

    #include "stdafx.h"
    #include <GL/glut.h>

    #using <mscorlib.dll>

    using namespace System;

    void display()
    {
    /*
      glClear( GL_COLOR_BUFFER_BIT );
     
      glBegin( GL_POINTS );

      //실습예제 화면
      for( int i=-150; i<150; i++)
      for( int j=-150; j<150; j++)
      { 
       glVertex2i( i,j);
     
       if ( j<-50 && j<i && j<-i ) glColor3d( 1.0, 0.0, 0.0 ); // red
       else if ( i<-50 && j>i && j<-i ) glColor3d( 0.0, 1.0, 0.0 ); // green  
       else if ( i> 50 && j<i && j>-i ) glColor3d( 0.0, 0.0, 1.0 ); // blue
       else if ( j> 50 && j>i && j>-i ) glColor3d( 1.0, 1.0, 0.0 ); // yellow
       else     glColor3d( 0.0, 1.0, 1.0 ); // cyan
       
       
      }
     
      glEnd();
      glFlush();
    */
    /*
      // 점그리기
      glClear(GL_COLOR_BUFFER_BIT);
      glPointSize(2.0f); // 점 사이즈
      glBegin(GL_POINTS);
      glVertex2d(0.0f, 0.0f);
      glEnd();
      glFlush(); // 화면에 출력하기
    */

    /*
      // 선그리기
      glClear(GL_COLOR_BUFFER_BIT);
      glLineWidth(2.0f);
      glBegin(GL_LINES);
      glVertex2d(-0.5f, -0.5f);
      glVertex2d(0.5f, -0.5f);
      glVertex2d(0.5f, 0.5f);
      glVertex2d(-0.5f, 0.5f);
      glEnd();
      glFlush();
    */
    /*
      // 면그리기
      glClear(GL_COLOR_BUFFER_BIT);
      glBegin(GL_POLYGON);
      glVertex2d(-0.5f, -0.5f);
      glVertex2d(0.5f, -0.5f);
      glVertex2d(0.5f, 0.5f);
      glVertex2d(-0.5f, 0.5f);
      glEnd();
      glFlush();
    */
      // 그라데이션
      glClear(GL_COLOR_BUFFER_BIT);
      glBegin(GL_QUADS);
      glColor3f(1.0, 0.0, 0.0);
      glVertex2d(-0.5, -0.5);
      glColor3f(0.0, 1.0, 0.0);
      glVertex2d(0.5, -0.5);
      glColor3f(0.0, 0.0, 1.0);
      glVertex2d(0.5, 0.5);
      glColor3f(1.0, 1.0, 0.0);
      glVertex2d(-0.5, 0.5);
      glEnd();
      glFlush();
    }

    int main( int argc, char **argv )
    {
     glutInit(&argc, argv);
     glutInitDisplayMode(GLUT_RGBA);
     glutCreateWindow(argv[0]);
     glutDisplayFunc(display);
     glClearColor(0.0, 0.0, 1.0, 1.0);
     glutMainLoop();
     return 0;
    }



Designed by Tistory.