HW1

그래픽스 프로그래밍(321190) 실습 #1
– 2D graphics & interaction
(321190)
강사: 박경신
2011년 3월 24일
3809818042.hwp사용자 삽입 이미지
제출 방법: 2011년 4월 7일(목) 밤12시까지
(e-learning 강의실에 실행파일과 소스코드와 리포트를 전부 “CG11_학번이름_숙제1.zip”으로 묶어서 제출하도록 합니다. 또한, 소스코트 폴더에 .cpp만 담지 말고 비주얼 스튜디오에서 만든 프로젝트 폴더를 담기 바랍니다.)


참고자료: moopies_starter.zip


0. Display window 크기는 500 x 500로 gluOrtho2D(-10, 10, -10, 10)를 사용한다.


1. ‘무피즈(Moopies)’ 클래스를 작성한다. KidPix Studio의 Moopies는 ‘Moving Picture’를 의미한다. (30점)
즉, 마우스의 움직임에 따라 다양한 선과 모양을 그려지는 낙서장을 만든다.
무피즈는 이름에서 의미하듯이 반드시 움직이는 개체이어야 한다.


2. 여러 가지 재미있는 기하의 속성 (attributes – 예를 들어 color, line width, etc)을 가진 ‘무피즈(Kidpix Moopies)’를 생성한다. (20점)
수학적인 공식 또는 기본색이나 모양을 변형하여 적어도 3개 이상의 무피즈를 만든다.


3. ‘무피즈(Kidpix Moopies)’ 프로그램을 작성한다. (30점)
-mouse
 -왼쪽 마우스 버튼을 누르면, 화면에 새로운 무피즈 (즉, Geometry)가 리스트에
 추가된다.
 -왼쪽 마우스 모션을 하면, 무피즈가 계속해서 그려진다.
 -화면의 위치변환(GLUT coordinate => OpenGL coordinate)한 위치 x, y를
 무피즈의 시작 위치 (position)으로 한다.
 -중간 마우스 버튼을 누르면, 화면을 clear한다.
-keyboard
 -spacebar를 계속해서 누르면, 현재 무피즈 도형의 모드(mode)를 선택할 수 있다.
 -q-key 또는 ESC-key를 누르면, 프로그램을 종료한다.
 -c-key를 누르면 화면을 clear한다.
-menu
 -팝업메뉴에서 무피즈 도형의 모드(mode)를 선택할 수 있다.


4. 프로그램이 완성되면 본인의 이름과 소개를 ‘무피즈’로 그린다. 창의성, 소스코드 주석처리, 리포트 (30점)

OPENGLGLUT-Getting-Started

-OPENGL/GLUT 설치 (VS2008 이하 버전)
http://dis.dankook.ac.kr/lectures/cg10/entry/OPENGLGLUT-Getting-Started

1. GLUT는 아래 파일을 다운 받아 설치해 주어야 합니다.6420614629.zip압축을 풀어보면 include, lib, system32 세 개의 폴더가 있습니다.

2. Visual Studio .NET 2010이 설치된 디렉토리의 Include와 Lib 폴더에 glut.h와 glut32.lib을 넣는다.

Visual Studio .NET2010의 경우
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\gl 폴더에 glut.h를 넣습니다.
C:\Program Files\Microsoft Visual Studio 10.0\VC\lib폴더에 glut32.lib를 넣습니다.

3. Windows\system32 폴더에 glut32.gll을 넣는다.
C:\Windows\system32 폴더에 glut32.dll를 넣습니다.

4. 세팅이 모두 끝나면, 프로젝트를 Win32 Console로 생성(File->New->Project, 템플렛에서 Win32->Win32 Console Application을 선택하고 <your project name>을 넣는다)하고, 아래의 소스를 넣어 컴파일, 실행해 봅니다.

/* minimal program to open & clear a window */
#if !defined(__APPLE__)
#include <GL/glut.h>
#else
#include <GLUT/GLUT.h>
#include <stdlib.h>
#endif

void display()
{
 glClear(GL_COLOR_BUFFER_BIT);
 glFlush();
}
void init()
{
 glClearColor(0.0, 0.0, 1.0, 1.0);
}
void keyboard(unsigned char key, int x, int y)
{
 switch (key) 
 {   
 case 0x1B:   
 case ‘q’:   
 case ‘Q’:     
  exit(0);   
  break; 
 }
}

int main(int argc, char* argv[])
{
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
 glutInitWindowSize(200, 200);
 glutInitWindowPosition(0,0);
 glutCreateWindow(argv[0]);
 glutDisplayFunc(display);
 init();
 glutKeyboardFunc(keyboard);
 glutMainLoop();
}

5. 이때, opengl32.lib glu32.lib glut32.lib 라이브러리 링크를 걸어줍니다.
Visual Studio .NET 2010의 경우 Project->Properties(ALT+F7)->Configuration Properties탭->Linker탭->Input탭에 Additional Dependencies에 “opengl32.lib glu32.lib glut32.lib”를 넣는다.

6. 컴파일/링크(Build)(F7)후 실행(Debug)(F5)시켜서 파란색화면의 윈도우가 뜨면 완성된 것입니다.