핸드폰 시뮬레이션 99003052 김 형 도 20021526 송 미 경
개 요 개발 목적 개발 환경 - 핸드폰 시뮬레이션을 만들어 봄으로써 수업 시간의 내용을 활용하여 본다. - 핸드폰 시뮬레이션을 만들어 봄으로써 수업 시간의 내용을 활용하여 본다. 개발 환경 - 운영체제 : WINDOWS 2000 Server - 개발 툴 : Microsoft Visual C++ - 개발언어 : OpenGL, C
기능 및 특징 모델링 Cube 를 이용해 형태 모델링
기능 및 특징 동작 구가 Rotate하면 그와 묶여진 다른 Cube 들도 같이 움직이게 됨 위쪽 플립 열기/닫기 위쪽 플립 회전 가능
기능 및 특징 플립 회전 - 위쪽 플립이 구를 따라서 회전 - 아래쪽 플립은 고정 - 위쪽 플립이 구를 따라서 회전 glRotatef(flipxRotate,1,0,0); //회전 각도 0도 ~ 147도 glRotatef(flipyRotate,0,1,0); // flipxRotate각이 0도~120도 일 때 flipyRotate각을 0도 ~ 180도로 회전 가능 함
기능 및 특징 안테나 이동 막대와 구를 묶어 이동 glTranslatef(0,Antena,0);
기능 및 특징 버튼 동작 버튼은 Cube로 제작 버튼 하나마다 키보드 숫자 값 대입 keyboard event 키보드 ‘1’ 누르면 버튼 큐브위치가 –z 축으로 0.35 이동 한번 더 누르면 버튼 큐브의 위치가 z축으로 0.35이동
기능 및 특징 Shading - 버튼 ‘1’이 눌러졌을 때 액정부분에 color 값 변함. glColor3f (1.0, 0.0, 0.0);-> 이벤트발생 ->각 정점에서 지정된 3개 < GL_FLAT > 의 컬러 값으로 바뀐다 < GL_SMOOTH > Viewing transformation gluLookAt (0.0,0.0,look,0.0,0.0,0.0,0.0,1.0,0.0); 키보드 이벤트를 주어 look, 즉 z 좌표 값 증가/감소 (0.1씩) 시선의 이동으로 인해 사물의 크기가 축소/ 확대되어 보임
기능 및 특징 투영(Projection) 직교 투영 glOrtho() 커맨드 생성 size = 7; 원근 투영 관측 공간의 양 끝 면의 크기가 일정 glOrtho() 커맨드 생성 size = 7; 원근 투영 gluPerspective() 커맨드 생성 평면상의 각도 : 100도 절두체의 종횡비 : w/h near : 0.1 , far : 100
기능 및 특징 조명(lights) - GL_DIFFUSE lightdiffuse[]={1.0,1.0,1.0,1.0}; //색 지정 흰색 glLightfv(GL_LIGHT0, GL_DIFFUSE, lightdiffuse); // 빛이 표면에 닿으면 모든 방향으로 골고루 산란 - GL_POSITION lightposition[]={1.0,1.0,1.0,0.0}; //광원 위치 지정 glLightfv(GL_LIGHT0, GL_POSITION, lightposition);
기능 및 특징 재질 (Material) - GL_SPECULAR matspecular[]={0.5,0.5,0.5,1.0}; glMaterialfv(GL_FRONT, GL_SPECULAR, matspecular); specular 반사는 하이라이트 생성 시점의 위치에 영향 - GL_SHININESS matshininess[]={20.0}; glMaterialfv(GL_FRONT, GL_SHININESS, matshininess); // 하이라이트의 크기와 밝기 조절 가능 숫자가 클수록 하이라이트가 작고 밝게 빛남
기능 및 특징 Special event Keyboard event Button Event 방향키 : 전체 회전 HOME , END ,PAGE_UP,PAGE_DOWN : 핸드폰의 플립 회전 F1,F2 : 안테나 이동 Keyboard event W, A : 시점 이동 투영 변화 숫자 버튼 : 휴대폰 각각의 번호
기능 및 특징 Mouse Event 왼쪽 마우스 클릭- 핸드폰 회전 가능 오른쪽 마우스 클릭 - 위 플립 열림/ 닫힘