homework2 – due by 4/18

 

그래픽스 프로그래밍(321190) 실습 #2


– 2D graphics & interaction (mouse, keyboard, menu)


(321190)


강사: 박경신


2008년 4월 3일




제출 방법: 2008년 4월 18일(금) 밤12시까지


(e-learning 강의실에 실행파일과 소스코드와 리포트를 전부 “학번이름_숙제2.zip”으로 묶어서 제출하도록 합니다. 또한, 소스코트 폴더에 .cpp만 담지 말고 비주얼 스튜디오에서 만든 프로젝트 폴더를 담기 바랍니다.)




참고자료: Scribble.zip & SimpleScribble.zip




0. Display window 크기는 1024 x 768로 한다.




1. Stroke 클래스를 완성한다. (10점)


     -두께 (thickness 1~7), 색 (R:0~255, G:0~255, B:0~255), 점들 (ptArray)




2. 마우스의 움직임에 따라 그림을 그리는 Scribble 낙서장을 만든다. (30점)


-왼쪽 마우스 버튼 – 새로운 Stroke의 점을 찍는다.


-왼쪽 마우스 모션 – Stroke의 점이 계속해서 그려진다.


-중간 마우스 버튼 – 모든 Stroke를 지운다.




3. Stroke의 색(color)과 두께(thickness)를 바꿀 수 있도록 GLUT 키보드(keyboard)와 메뉴(menu) 인터랙션을 추가한다. 메뉴는 오른쪽 마우스 버튼에 붙힌다. (20점)


-키보드


‘r’, ‘g’, ‘b’, ‘y’, ‘m’ KEY – 빨간색, 초록색, 파란색, 노란색, 보라색


‘1’ ~ ‘7’ KEY – 두께


‘c’ KEY - 화면을 지운다 (clear screen)


‘ESC’ KEY – exit




-메뉴 (RIGHT_MOUSE_BUTTON)


color: red, green, blue, yellow, magenta


thickness: 1, 2, 3, 4, 5, 6, 7


clear


quit




4. MFC SimpleScribble과 호환이 가능한 Text file import(스트로크 데이터 텍스트 파일 읽어들이기)와 export(스트로크 데이터를 텍스트로 저장하기). (10점)


-fileimport – argv[1]으로 파일 읽어들이기


     // 한 line씩 읽어들여서,


     // 먼저 line에 “Thickness”가 있는지 찾고,


     // 있으면 new Stroke를 하고 이것을 aStrokeList에 추가한다.


     // 만약 아니면, 새로운 Stroke가 아니니까


     // 그냥 이전에 생성한 Stroke의 ptArray에 Point를 추가한다.




-fileexport – ‘s’-KEY를 누르면 “out.txt” 파일로 저장하기


    // aStrokeList 안에 있는 모든 Stroke 별로,


    // 먼저, 이 Stroke의 펜 두께와 색 “Thickness: %d Color: RGB(%d, %d, %d)”를


    // 출력한다. 그리고, 이 Stroke의 모든 점들을 (%d, %d)로 출력한다.




    -첨부된 텍스트 파일 (Test.txt)를 사용하여 테스트해 볼 것




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

Leave a Reply

Your email address will not be published. Required fields are marked *