Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Graphics 윈도우 프로그래밍 김 창 헌김 창 헌. Computer Graphics 2 윈도우 시스템  윈도우  스크린 위에서 독립적으로 움직일 수 있는 사각형 영역  윈도우 시스템  유저와 어플리케이션간의 그래픽 스크린을 통한 인터페이스 를.

Similar presentations


Presentation on theme: "Computer Graphics 윈도우 프로그래밍 김 창 헌김 창 헌. Computer Graphics 2 윈도우 시스템  윈도우  스크린 위에서 독립적으로 움직일 수 있는 사각형 영역  윈도우 시스템  유저와 어플리케이션간의 그래픽 스크린을 통한 인터페이스 를."— Presentation transcript:

1 Computer Graphics 윈도우 프로그래밍 김 창 헌김 창 헌

2 Computer Graphics 2 윈도우 시스템  윈도우  스크린 위에서 독립적으로 움직일 수 있는 사각형 영역  윈도우 시스템  유저와 어플리케이션간의 그래픽 스크린을 통한 인터페이스 를 담당하는 소프트웨어  윈도우 어플리케이션을 디스플레이에 표시하고, 유저의 조작 ( 키보드, 마우스 ) 을 어플리케이션에 반영  어플리케이션을 위한 라이브러리 제공  폰트, 이미지 등 데이타 규약 및 실제 데이터 제공  유저인터페이스 외관, 사용법의 규약 제공

3 Computer Graphics 3 윈도우 시스템 구조 어플리케이션 Display device, Keyboard, Pointing device(mouse) etc. 디스플레이를 위한 장치 비의존적인 소프트웨어 자원 할당, 어플리케이션 간 통신, 하위 layer 할당 기본 윈도우 시스템 그래픽스 라이브러리 하드웨어 유저 인터페이스를 만들기 위해 사용되는 기능 유저 인터페이스 툴킷

4 Computer Graphics 4 GUI 와 윈도우 시스템 어플리케이션 윈도우시스템 오퍼레이팅 시스템 툴킷 어플리케이션 프로그램 UNIX OSMS-DOS Windows X 윈도우 X View Motif Intrinsics

5 Computer Graphics 5 윈도우 운영체제의 장점  그래픽 유저 인터페이스 (GUI)  스크린 영역을 유용하게 사용  시각적으로 풍부한 환경 제공  정형화된 그래픽과 문자  일관된 유저 인터페이스  하나의 윈도우용 프로그램을 사용할 줄 알면 다른 것도 그대로 사용  프로그래머 관점  윈도우에 내장된 루틴을 이용  장치 독립적인 프로그램  프로그램 작성시 프린터, 마우스, 키보드, 사운드 카드,CD-ROM 드 라이브등의 장치 사용이 자유로움

6 Computer Graphics 6 윈도우 프로그래밍  윈도우가 지원하는 550 개 이상의 함수 호출  Windows SDK 의 “windows.h” 에 정의되어 있음  윈도우 프로그램은 윈도우와 동적 연결  프로그램 내의 함수의 호출은 동적 연결 라이브러리의 시작 번지 로의 연결  윈도우의 동적 연결 라이브러리  Kernel : 메모리 관리, 프로그램 관리, 스케쥴 관리  User : 유저 인터페이스, 윈도우화 관리  GDI : 그래픽 처리

7 Computer Graphics 7 윈도우 프로그래밍 ( 계속 )  메시지 구동 아키텍춰  윈도우는 프로그램에 메시지를 보냄  즉, 윈도우 프로시져 ( 프로그램 또는 DLL 함수 ) 호출  ( 예 ) 윈도우 크기 변경  윈도우가 프로그램에 크기 변경 메시지 전달  프로그램이 윈도우 조정  비디오 디스플레이에 그림 그리기 예  윈도우 생성  윈도우 핸들 필요  디바이스 핸들 필요  윈도우로 가는 메시지 받기  메시지 처리  윈도우즈 프로시져

8 Computer Graphics 8 컴퓨터 그래픽 프로그래밍  컴퓨터에서 그림, 도표, 영상 등의 그래픽을 표현하기 위한 방법과 알고리즘, 즉, CG 를 컴퓨터 언어를 통해 구 현하거나 응용하는 프로그램을 작성하는 행위 그래픽 에디터, 3D 툴영상을 얻기 위한 그래픽스 툴 프로그램 CG 작품 프로그램영상을 보여주는 전용 프로그램 프랙탈도형이 중시되는 수학용 프로그램 2D, 3D 그래픽 라이브러리기본작도를 위한 함수 프로그램 게임엔진, 3D 엔진 게임에서 CG 를 표현하기 위한 기본함수를 위한 프로그램

9 Computer Graphics 9 Visual C++ 의 개요  전통적인 C/C++ 개발 과정에 통합된 윈도우 중심의 개 발 툴과 비주얼한 사용자 인터페이스 중심의 패러다임 을 결합한 개발 툴  구성  개발환경도구 + MFC( 클래스 라이브러리 )  일반 윈도우 응용 프로그램, 클라이언트 / 서버, 인터넷, 데이터베이스 등 다양한 응용 프로그램 개발이 가능

10 Computer Graphics 10 Visual C++ 의 특징  Visual C 윈도우와 인터넷 플랫폼에 알맞은 어플리케이 션을 개발하기 위한 객체 지향적인 프로그램 개발도구  작고 수행속도가 빠른 실행파일을 만드는 향상된 컴파 일러 제공  컴파일러의 COM(Component Object Model) 을 지원하여 COM 기반 어플리케이션을 쉽게 만듦  자동화된 프로그래밍을 제공하여 대부분의 코드는 Visual C++ 가 만들어 주고 프로그래머는 꼭 필요한 부분 에 원하는 기능을 추가하여 작성하므로 빠른 어플리케 이션 작성이 가능

11 Computer Graphics 11 Visual C++ 의 구성  개발자 스튜디오  프로젝트 워크스페이스 윈도우  어플리케이션 위저드  리소스 에디터  클래스 위저드  C/C++ 컴파일러  리소스 컴파일러  Just-in-time 디버거

12 Computer Graphics 12 Visual C++ 의 구성 ( 계속 )  개발자 스튜디오  프로그램 개발과 관련된 모든 작업을 수행할 수 있는 통합개발 환경  프로그램 생성과 갱신을 관리하기 위해 프로젝트 파일을 사용  프로젝트 : 윈도우 프로그램을 만들기 위해 컴파일되고, 링크되고, 바운드 될 소스 파일들에 대한 정보를 모아 관리하는 파일  프로젝트 워크스페이스 윈도우  응용 프로그램의 프로젝트에 포함된 클래스, 리소스, 소스 코 드 파일 등을 일목요연하게 살펴볼 수 있도록 여러 속성 시트 형태로 구성된 윈도우  ClassView, ResourceView, FileView, InfoView 로 구성

13 Computer Graphics 13 Visual C++ 의 구성 ( 계속 )  어플리케이션 위저드  대화상자를 통해 응용 프로그램의 특성을 선택하여 윈도우 응용 프로그램의 기본 작업 골격 (Application Framework) 을 만들어 주는 코드 생성기  리소스 에디터  응용 프로그램에서 사용하는 화면에 보여주는 여러 리소스를 생성, 수정하는 에디터  리소스 객체들을 디자인하고 이를 실제 코딩상의 객체로 연결 시켜 주기 위하여 윈도우 메시지 프로시저에 처리루틴 만들어 줌

14 Computer Graphics 14 Visual C++ 의 구성 ( 계속 )  클래스 위저드  프로젝트에서 사용하는 클래스를 관리하고, 자원 에디터에 서 생성한 리소스와 클래스의 멤버 함수 또는 데이터 멤버를 연결시키는 역할  C/C++ 컴파일러  소스 프로그램의 확장자에 따라 확장자가 C 이면 C 언어로, 확 장자가 CPP 이면 C++ 언어로 컴파일  헤더 파일에서 변경된 부분과 관련된 부분만을 컴파일하는 Minimal Rebuild 방법을 사용함으로 컴파일 속도 향상

15 Computer Graphics 15 Visual C++ 의 구성 ( 계속 )  리소스 컴파일러  리소스들이 별도로 컴파일 되어 실행 파일과 연결됨  컴파일 모드  자원 에디터로부터 생성된 자원 스크립트 파일 (RC) 을 이진 RES 파일로 컴파일  바인드 모드  RES 파일을 실행 파일과 합병  Just-in-time 디버거  프로그램 실행 중에 에러가 발생하면 바로 그 시간 (Just-in- time) 에 디버거가 실행되어, 에러를 발생시킨 위치에 중지점 (breakpoint) 를 설정하고 디버깅 작업을 수행

16 Computer Graphics 16 MFC 라이브러리  MFC(Microsoft Foundation Class)  윈도우 하에서 응용 프로그램을 만드는 골격을 지원하 는 C++ 클래스들의 모임  윈도우가 제공하는 Win32 API 함수들을 체계적으로 통 합한 클래스  API 중 중요하고 많이 사용되는 구성요소만을 클래스화

17 Computer Graphics 17 MFC 의 장점  객체지향적이고 윈도우에 대한 High-level Interface 를 제공  응용 프로그램의 소스 코드를 바로 수정하지 않고, MFC 의 클 래스를 상속받아 새로운 클래스를 만들고, 필요한 멤버함수를 오버라이딩  응용 프로그램 설계 시 노력 절감  GUI 요소를 만드는 것보다 데이터를 다루는 코드에 노력 집중 하게 함  프로그래밍 툴 (AppWizard, ClassWizard, Component Gallery) 을 사용할 수 있고, 객체 지향 프로그래밍과 이벤트 처리 방식 프로그래밍 방식에 따라 쉽게 프로그램이 가능

18 Computer Graphics 18 Visual C++ 어플리케이션 생성과정 Developer Studio (AppWizard, ClassWizard 포함 ) C++ 컴파일러 윈도우 런 타임 클래스 라이브러리 파일 OBJ 파일 링커 실행 가능한 프로그램 (exe) 클래스 라이브러리 프로젝트 정의 (DEF) 파일 윈도우 라이브러리 와 런 타임 라이브러리 프로젝트 소스파일 (CPP,H) 메뉴, 비트맵, 아이콘 등 표준 리소스 리소스 스크립트 파일 (RC) 리소스 컴파일러 ( 컴파일 모드 ) 리소스 파일 (RES) 리소스 컴파일러 ( 바인드 모드 )

19 Computer Graphics 19 윈도우 프로그래밍 과제물  도형 모양과 칼라 선택하여 도형 그리기  마우스를 클릭한 곳에 지정된 모양과 색깔의 도형 그리기

20 Computer Graphics 20 과제물 요구사항  내용  제공하는 코드를 참조하여, 그려질 도형과 칼라를 추가  기본 요구사항  삼각형, 타원, 다각형, 부채꼴, etc.. 등의 도형을 추가할 수 있 어야 함  Black, Red, Green, Blue 이외의 색상을 지정할 수 있어야 함

21 Computer Graphics 21 과제물 추가 구현 사항  도형을 그룹화 해서 새로운 도형을 만듦  하트, 별, 꽃, 나비, 벌 등  수학 함수를 이용한 Field of “Flower”  마우스를 클릭한 지점에 다양한 모양의 꽃을 그려 줌  꽃잎의 표현은 수학 함수를 이용.  꽃밭은 여러 가지의 꽃이 존재하여야 함.

22 Computer Graphics 22 꽃잎 만드는 루틴  포트란 소스. PROGRAM SPAT CALL START(40,0) CALL SPIRO(12,7,5) STOP END SUBROUTINE SPIRO(A,B,D) INTEGER A,B,D,AMB PI=ACOS(-1,0) AMB=A-B THETA=0.0 THINC=PI*O.O2 N=B/ICF(A,B) NUM=N * 100 CALL MOVETO(FLOAT(AMB+D),0.0) DO 101 I=1,NUM THETA=THETA* THINC PHI=THETA*FLOAT(AMB)/FLOAT(B) X=FLOAT(AMB)*COS(THETA)+FLOAT(D)*COS(PHI) Y=FLOAT(AMB)*SIN(THETA)+FLOAT(D)*SIN(PHI) CALL LINETO(X,Y) END FUNCTION ICF(II,JJ) I=II J=JJ M=MOD(I,J) IF(M.NE. 0) THEN I=J J=M GOTO 99 ENDIF ICF=J RETURN END 왼쪽 코드 실행 결과

23 Computer Graphics 23 과제물 제출 및 평가 기준  제출물  실행파일, 보고서  자신이 구현한 부분의 소스 코드 포함, 문제 접근방법 및 알고 리즘 설명  평가기준  기본 요구사항의 구현  독창성  제출기한 준수

24 Computer Graphics 24 Visulal C++ 시작하기 시작 메뉴에 있는 아이콘을 클릭한다.

25 Computer Graphics 25 Visual C++ 개발 Tool 아이콘을 클릭하면 아래와 같은 프로그램 개발 도구가 화면에 나타난다.

26 Computer Graphics 26 Visual C++ 개발도구 구성 메뉴 바 Project Workspace window File Edit Window Output Window

27 Computer Graphics 27 윈도우 어플리케이션 개발 과정 1. AppWizard 를 이용하여 윈도우 틀 (framework) 형성 2. Visual design 단계 3. 코드 작성 단계 4. 컴파일 및 링크 ( 실행 파일 생성 )

28 Computer Graphics 28 1. AppWizard 를 이용하여 윈도우 틀 (framework) 형성

29 Computer Graphics 29 2. Visual design step  리소스 편집기를 이용하여 사용자 인터페이스를 구성하는 오브젝트 생성  눈에 보이는 부분 설계 프로그램의 모양을 만듬. 비주얼 C++ 에 내장된 기 능을 사용해서 여러가지 개체를 만듦.( 푸쉬버튼, 스 크롤 바, 라디오 버튼 등 )

30 Computer Graphics 30 3. 코드 작성 단계 ( code-writing step)  ClassWizard 를 이용하여 사용자 인터페이스 오브젝트에 대한 메시지 처리 코드 생성  혹은 에디터에 직접 코드 작성 눈에 보이지 않는 부분의 설계 - 코드와 리소스의 연결

31 Computer Graphics 31 4. Application source code 컴파일 및 링크 ( 실행파일 생성 )

32 Computer Graphics 32 윈도우즈 프로그램 예제 1. 기본 윈도우 틀 만들기 2. 대화상자 (Dialog box) 만들기 3. 그래픽 프로그램  도형 모양과 색깔 선택하여 도형 그리기.

33 Computer Graphics 33 윈도우즈 프로그래밍 예제 (I)  기본 윈도우 틀 만들기 File 의 New 메뉴 를 선택한다.

34 Computer Graphics 34 AppWizard 를 이용하여 기본 윈도우 틀 만들기 아무 기능도 수행하지 않는 골격 프로그램 Step1: “my” 라는 이름 의 프로젝트 생성 & 골 격 코드 작성 1) File 메뉴의 New 항목 2) MFC AppWizard 선택 3) 프로젝트명 입력 4) OK 버튼 클릭

35 Computer Graphics 35 1. 어플리케이션 특성 선택 Single document : 하나의 다큐 먼트를 갖는 어플리케이션 Multiple documentation : 각각 의 윈도우를 갖는 여러 개의 다 큐먼트를 작업할 수 있는 어플 리케이션 Dialog based : 다이얼로그 박 스가 나타나는 어플리케이션

36 Computer Graphics 36 2. 데이터베이스 지원옵션 None Header files only : 데이터베 이스 지원하는 AfxDb.h 헤더 파일을 포함하는 어플리케이 션 생성. Database view without file support : 데이터베이스를 지원 하는 어플리케이션은 생성하 나 파일을 지원하지는 않음. Database view with file support : 데이터베이스와 파일 지원하는 어플리케이션

37 Computer Graphics 37 3. OLE 지원 옵션 None Container : OLE 컨테이너 어플리케이션 생성. Mini-server : 단독적으로 실행될 수 없으며 단지 포 함 객체만 생성하는 어플 리케이션 Full-server : 단독적으로 실행될 수 있으며, 포함 연 결 객체도 생성하는 어플 리케이션 Both container and server : OLE 컨테이너와 서버를 지 원하는 어플리케이션 생성

38 Computer Graphics 38 4. 사용자 인터페이스 옵션 Docking toolbar : 이동가능한 툴바를 만듬. Initial status bar : 윈도우 하단 에 상태바를 만듬 Printing and print preview : 인 쇄와 관련된 메뉴 설정 Context-sensitive Help : 구문인 식 도움말 제공하는데 사용되 는 도움말 파일 생성. 3D controls : 입체적인 형태로 리소스를 이용 MAPI : 편지보내기와 관련된 메뉴 & 명령코드 Windows Socket : TCP/IP 네트 워크상에서 통신할 수 있는 어 플리케이션 생성

39 Computer Graphics 39 5. 생성파일 내용옵션 결정 Yes, please : 소스파일 에 주석문 추가 No, thank you : 주석문 추가하지 않음. As a shared DLL : 공유 DLL 사용 As a statically linked library : 정적 링크 라이 브러리

40 Computer Graphics 40 6. 생성된 클래스 명 및 파일명 지정 생성된 클래스들의 이 름과 구현 파일명을 보여 줌. New Project Information 다이얼로 그 박스가 출력.

41 Computer Graphics 41 7. AppWizard 를 이용한 기본 윈도우 틀 생성 결과


Download ppt "Computer Graphics 윈도우 프로그래밍 김 창 헌김 창 헌. Computer Graphics 2 윈도우 시스템  윈도우  스크린 위에서 독립적으로 움직일 수 있는 사각형 영역  윈도우 시스템  유저와 어플리케이션간의 그래픽 스크린을 통한 인터페이스 를."

Similar presentations


Ads by Google