학습목표 5장. 오픈지엘 기본틀 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다.

Slides:



Advertisements
Similar presentations
동서 식사예절 박재용이은미. 보기 닫기 카톡 안철수가 빌게이츠에게 면박 당한 이유는...??
Advertisements

일본 근세사. (1) 에도막부의 개창 ( ㄱ ) 세키가하라의 전투 (1600) - 히데요시의 사후 다섯 명의 다이로 ( 大老 ) 가운데 최대 영지 (250 만석 ) 를 보유하고 있던 도쿠가와 이에야스가 급부상. 이에 이에야스와 반목해 온 이시다 미쓰나리 ( 石田三成 ),
아니마 / 아니무스 송문주 조아라. 아니마 아니마란 ? 남성의 마음속에 있는 여성적 심리 경향이 인격화 한 것. 막연한 느낌이나 기분, 예견적인 육감, 비합리적인 것에 대 한 감수성, 개인적인 사랑의 능력, 자연에 대한 감정, 그리.
대구가톨릭대학교 체육교육과 06 학번 영안중학교 체육교사 신웅섭 반갑습니다. 반야월초등학교 축구부 대륜중학교 축구부 대륜고등학교 대구가톨릭대학교 차석 입학 대구가톨릭대학교 수석 졸업 2014 년 경북중등임용 체육 차석 합격 영안중학교 체육교사 근무 소개.
지도교수 : 박진식 교수님 조 원 : 홍승기, 이병용, 백승준, 조근용, 조동현, 한정협, 이상하.
1 ‘ 우리나라의 주요공업 ’ - 정도웅, 주민혁, 안수진, 백경민, 엄다운, 박경찬 -.
일장 - 1 일 24 시간 중의 명기 ( 낮 ) 의 길이 ( 밤은 암기, 낮은 명기 ) 광주기성 - 하루 중 낮의 길이의 장단에 따라 식물의 꽃눈 형성이 달라지는 현상 일장이 식물의 개화현상을 조절하는 중요한 요인 단일식물 - 단일조건에서 개화가 촉진되는 식물 장일식물.
수유부의 약물복용 시 주의점 발표자 조기성. 모유 수유의 장점 모유 수유의 장점은 ? 위장관 질환 발생감소 영아 돌연사 발생감소 아토피 질환 발생감소 정서적 안정.
똘기 : 채 익지 않은 과일. 똘기 소개 일명 발표동아리. 똘기는 발표에 대한 두려움을 가지고 있는 학우들에게 ‘ 자신감 ’ 을 키워줄 수 있도록 하자는 취지에서 만들어졌다. 평소 강의 시간보다 편안하고 자유롭게 발표해 볼 수 있는 기회를 제공함으로써 발표력 향상에 기여하는.
2 학년 6 반 1 조 고은수 구성현 권오제 김강서.  해당 언어에 본디부터 있던 말이나 그것에 기초하여 새로 만들어진 말  어떤 고장 고유의 독특한 말  Ex) 아버지, 어머니, 하늘, 땅.
2013년도 2학기 학습튜터링 O.T.
키보드 보안 순천향대학교 정보보호학과 임강빈 교수.
현대사회와 윤리 1. 윤리학이란 무엇인가?.
미국의 미디어교육 신문방송학과 강진구 한인수 곽모란 이명현.
2014년도 교원 및 기간제교사 성과상여금 전달교육 개 회 국기에 대한 경례 - 인사말
선진 고양교육 “유아교육 행정 업무 연수” 유치원 회계실무 및 유아학비 연수 경기도고양교육청.
행정소송 실무교육 공익법무관 문 유 식 인사 공익법무관 소개 서울고검 소개.
PRESENTATION 저온화상이란?
조선왕조의 유교정치.
묵자 겸애, 비명, 비공, 상현, 상동, 천지, 명귀, 삼표 법.
Implement of Input and Interaction
공부할 내용 조상들이 살던 곳 자연과 잘 어울리는 한옥 지방에 따라 서로 다른 집의 모양 섬 지방의 집
사랑, 데이트와 성적 자율성 :데이트 성폭력!!! 성폭력예방교육 전문강사 / 여성학 전공 신 순 옥.
1636 쇼핑몰.
학습목표 5장. 오픈지엘 기본틀 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다.
퇴계와 율곡의 사회사상 비교 남 일 재 동서대학교 교수/ 정치학 박사 1. 퇴계 이황과 율곡 이이의 약전(略傳)
내 아이를 위한 구강관리.
제16장 원무통계 • 분석 ☞ 통계란 특정의 사실을 일정한 기준에 의하여 숫자로 표시한 것을 말한다.통계로서 활용할 수 있는 조건으로는 ① 동질성을 지녀야 하고 ② 기준이 명확하고 ③ 계속성이 지속되어야 하며 ④ 숫자로 표시하여야 한다 경영실적의.
청소년문제와 보호 청소년문제의 개념과 범주.
7장 디스플레이 리스트.
서울지방세무사회 부가세 교육 사진클릭-자료 다운 세무사 김재우.
501. 군인들의 세상 502. 민정 이양과 한일회담 이선용.
쌓지 말고 해소하자 이 주휘 이 진영 전 민석 전 혜림.
2015년 하반기 소방교육 자 유 전 공 학 부 (금) 안녕하십니까 자유전공학부 행정실 입니다.
쌍용차 회생계획안을 통한 투기자본(=먹튀자본) 수강과목: 회 계 학 원론 담당교수: 박 성 환 교수님
치매의 예방 김 은민 윤금 노인요양원 치매의.
데이터 구조 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
제5장 제어명령
제2절 법인세의 계산구조와 세무조정 1. 각 사업연도소득에 대한 법인세 계산구조 회계와 사회 결산서상 당기순이익
서울 메트로 노조파업 수강과목 : 노사 관계론 담당교수 : 정형진 교수님
Sang Il Park Sejong University
5장. 오픈지엘 기본틀 학습목표 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다.
컴퓨터 개론 및 실습 Dept. Computer Eng. Hankuk University of Foreign Studies
프로그래밍 보고서 작성법 순천향대학교 컴퓨터공학과 하 상 호.
계약서 관련 실무 계약 위반과 판례 김래균.
키타노카시쇼쿠닌(北の菓子職人) - 「오호츠크의 소금 맛」
프로젝트 학습 -프로젝트의 운영- 초등교육학과B 정예은.
Chapter 4 컬러( COLOR ).
패시브하우스 신안산대학교 l 건축과 l 박효동, 박창준, 지예림.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
생활 철학 인간이란 무엇인가?.
정치개혁의 가능성 논의 권력구조 개편을 통하여 본 -개헌을 통한 정부형태의 변화를 중심으로 [한국정치론] 윤성이 교수님
자바 5.0 프로그래밍.
치료 레크레이션 프로그램 (지적 장애 대상) 과 목: 학 과: 학 번: 이 름: 제 출 일 자 담 당 교 수:
3조 권기태 윤주영 은화령 이형찬 이송민 김동욱 한승묵
노년기 발달 장안대 행정법률과 세류반 정 오 손
의사결정과 의사소통 발표 철학과 나지훈 요약 정치외교학과 양승명 PPT 일본어학과 왕동현 사례 패션학과 강민경
태국 문학 욜라다 왓짜니 싸란차나 팟차라와라이 끼따야펀 르앙다우 타니다.
안드로이드 앱 분석 팀 기반의 설계 프로젝트 박민재
이야기 치료에 대하여 <8조 학문적 글쓰기 발표> 주희록 최은지
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 6주차 대림대학교 2017년도 1학기 강의 왕보현
정부조직론 Team 1 발표 제5장 제1절, 제2절 공공정책학부 강철욱 권지호
워밍업 실뭉치 전달게임.
내 마음 다해 내마음다해 주이름찬양해- 주사랑 깊어 말로다못하 네 주앞서 1-4.
8단계 3층을 완성한다 Case 1 Case 2 Case 3 Case 4
printf("Global Korea\n");
음파성명학 최종욱.
흐름도FLOWCHART 프로그래밍 과정 전단부 처리 단계 문제 분석 논리 설계
Presentation transcript:

학습목표 5장. 오픈지엘 기본틀 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다. GLUT 콜백함수의 종류와 사용법을 이해한다. GL의 화면 좌표계와 GLUT의 화면 좌표계 사이의 차이점을 이해한다. 더블 버퍼링의 필요성에 대해 이해한다. 정점 배열, 디스플레이 리스트의 필요성과 사용법을 이해한다.

Section 01 그래픽 입력장치-물리적 입력장치 마우스, 조이스틱, 트랙볼, 스페이스 볼 상대입력과 절대입력 타블렛, 스타일러스 펜 크로스 헤어 커서 디지타이징 터치 패널 광학 패널, 전기 패널 [그림 5-1-4] 마우스 조이스틱 트랙볼 스페이스볼 [그림 5-6] 타블렛 Ⅱ [그림 5-7] 광학 [그림 5-8] 전기

3D 스캐너 버튼 박스와 다이얼 물리적 입력장치 물체 표면의 X, Y, Z 좌표 인식 레이저 촬상소자(CCD) 버튼 박스: 매크로 기능 다이얼: 물체에 대한 기하변환 아날로그 방식 [그림 5-9] 3차원 스캔 작업 [그림 5-10] 레이저스캐너 [그림 5-11] 버튼 [그림 5-12] 다이얼

입력을 논리적으로 취급 좌표 입력기(Locator) 연속좌표 입력기(Stroke) 문자열 입력기(String) Section 02 입력 모드-논리적 입력장치 입력을 논리적으로 취급 scanf("%d", &x); 키보드? 버튼박스? 물리적 입력장치가 바뀌어도 프로그램은 동일 좌표 입력기(Locator) 절대좌표 또는 상대좌표. 마우스, 키보드의 화살표 키, 트랙 볼 연속좌표 입력기(Stroke) 일련의 연속 좌표. 마우스, 태블릿 커서. 문자열 입력기(String) 문자열. 키보드. 스칼라 입력기(Valuator) 회전각, 크기조절 비율 등 스칼라 값. 키보드, 마우스, 다이얼 메뉴선택 입력기(Choice) 메뉴, 서브메뉴, 메뉴옵션 선택. 마우스, 키보드, 터치 패널, 음성 물체선택 입력기(Pick) 물체를 선택. 마우스나 터치 패널

메저와 트리거 Ex. 메저 프로세스 입력 모드 메저(Measure): 응용프로그램에게 전달되는 입력값 트리거(Trigger): 전달하라는 신호 Ex. DIR <ENTER> 마우스 좌표와 클릭 선택된 메뉴 아이디와 클릭 메저 프로세스 운영체제 초기화 시에 실행 항상 시스템 버퍼에 메저 값이 저장되어 있음.

프로그램이 실행 중 메저를 요구 리퀘스트 모드 트리거가 일어날 때까지 대기상태 Request_Locator(Device_ID, &Measure); Device_ID 필드에 의해 물리적 입력장비 제어 [그림 5-15] 리퀘스트 모드

직접모드 샘플 모드 사용자 트리거가 불필요 sample_Locator(Device_ID, &Measure); 이미 필요한 메저가 준비된 상태 물체선택 -> 회전 메뉴 선택 cf. 회전 메뉴 선택 -> 물체선택: 리퀘스트 모드 [그림 5-16] 샘플 모드

이벤트 모드 이벤트 레코드: 이벤트 타입, 장치 아이디, 메저 응용 프로그램은 주기적으로 이벤트 큐를 검사 이벤트 모드 사용자가 입력 선택. cf. 리퀘스트/샘플 모드: 프로그램이 주도권 이벤트 레코드: 이벤트 타입, 장치 아이디, 메저 응용 프로그램은 주기적으로 이벤트 큐를 검사 드라이버에게 이벤트 리퀘스트. 드라이버가 큐 프런트 레코드를 전달 큐가 비어있으면 응용 프로그램은 다른 일을 수행 [그림 5-17] 이벤트 모드

응용 프로그램 구조 콜백함수 Initialize Input Devices; do {    if (There Is an Event on the Event Queue)          switch (Event Type)          {    case Keyboard Event:                       Get  Event Record, Run Keyboard Callback                case Mouse Event:                      Get  Event Record, Run Mouse Callback           ...          }         else Do Background Process } while (User Does Not Request Escape);

Section 03 지엘 프로그램 예-지엘의 콜백 [표 5-1] 타입별 콜백함수 [그림 5-19] 콜백 테이블

아이들 콜백 지엘의 콜백 큐에 이벤트가 없을 때 실행 정의되어 있지 않으면 운영체제는 다른 일을 수행 드라이버를 통해 주기적으로 이벤트 검사 [표 5-1] 타입별 콜백함수

Section 04 윈도우와 뷰포트-윈도우와 뷰포트 윈도우를 분할 그리기가 뷰포트 내부로 제한됨 왜곡 뷰포트 미 설정시 기본값으로 윈도우 = 뷰포트 윈도우 크기조절에 따라 뷰포트 내부 그림도 자동으로 크기조절 별도 뷰포트 설정에 의해 왜곡 방지 [그림 5-24] 뷰 포트 [그림 5-25] 왜곡

GLUT 윈도우 제어 [그림 5-26] GLUT 윈도우 제어명령

GL의 뷰포트 설정 [그림 5-27] 지엘의 뷰포트 설정

Section 05 콜백 프로그래밍-GL의 화면좌표, GLUT 화면좌표 [그림 5-45] GLUT, GL의 화면좌표

2중 포트 구조 프레임 버퍼 Read Port, Write Port 버퍼를 읽어서 화면에 뿌리는 것은 거의 동시 버퍼에 기록하는 것은 상대적으로 느림 애니메이션에서 문제가 됨 [그림 5-59] Dual-Port 프레임 버퍼

애니메이션 시의 문제 [그림 5-60] 프레임 버퍼 쓰기와 읽기

Section 06 애니메이션과 더블 버퍼링-더블 버퍼링 프런트 버퍼와 백 버퍼 [그림 5-61] 더블 버퍼링

glColor3fv(MyColors[0]); glVertex3fv(MyVertices[0]); Section 07 정점배열-육면체 그리기 GLfloat MyVertices[8][3] = {{-0.25, -0.25, 0.25}, {-0.25, 0.25, 0.25}, {0.25, 0.25, 0.25}, {0.25, -0.25, 0.25}, {-0.25, -0.25, -0.25}, {-0.25, 0.25, -0.25}, {0.25, 0.25, -0.25}, {0.25, -0.25, -0.25}}; GLfloat MyColors[8][3]={{0.2, 0.2, 0.2}, {1.0, 0.0, 0.0}, {1.0, 1.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 1.0}, {1.0, 1.0, 1.0}, {0.0, 1.0, 1.0}}; 정점 0, 3, 2, 1으로 구성된 면 (반시계 방향으로 명시) glBegin(GL_POLYGON);    glColor3fv(MyColors[0]); glVertex3fv(MyVertices[0]);     glColor3fv(MyColors[3]); glVertex3fv(MyVertices[3]);    glColor3fv(MyColors[2]); glVertex3fv(MyVertices[2]);     glColor3fv(MyColors[1]); glVertex3fv(MyVertices[1]); glEnd(); [그림 5-62] 육면체

계층구조적 표현 [그림 5-64] 물체의 계층적 자료구조

정점 배열 GLfloat MyVertices[8][3] = {{-0.25,-0.25,0.25}, {-0.25,0.25,0.25}, {0.25,0.25,0.25}, {0.25,-0.25,0.25}, {-0.25,-0.25,-0.25}, {-0.25,0.25,-0.25}, {0.25,0.25,-0.25}, {0.25,-0.25,-0.25}};           GLfloat MyColors[8][3]={{0.2,0.2,0.2}, {1.0,0.0,0.0}, {1.0, 1.0, 0.0}, {0.0,1.0,0.0}, {0.0,0.0,1.0}, {1.0,0.0,1.0}, {1.0,1.0,1.0}, {0.0,1.0,1.0}};                                       GLubyte MyVertexList[24]={0,3,2,1, 2,3,7,6, 0,4,7,3, 1,2,6,5, 4,5,6,7, 0,1,5,4};         void MyDisplay( ){      …     glEnableClientState(GL_COLOR_ARRAY);                                          glEnableClientState(GL_VERTEX_ARRAY);     glColorPointer(3, GL_FLOAT, 0, MyColors);                                   glVertexPointer(3, GL_FLOAT, 0, MyVertices);          for(GLint i = 0; i < 6; i++)                                                   glDrawElements(GL_POLYGON, 4, GL_UNSIGNED_BYTE, &MyVertexList[4*i]);     …                            }                               

Section 08 디스플레이 리스트-지엘의 실행모드 직접 모드(Immediate Mode) 화면 렌더링과 동시에 물체 정보를 모두 파기 다시 그리려면 전체 코드를 다시 실행 보류모드(Retained Mode) 이미 정의된 물체를 컴파일 된 형태로 재사용 디스플레이 리스트 기본요소(Primitives), 상태변수(State Variable), 영상(Image) 이동, 회전, 조명 작업과 관련된 모든 명령 반복적으로 실행되어야 할 요소를 디스플레이 리스트 내부에 포함 프로그램 속도 향상에 필수적임

Thank you