본문 바로가기

기타

(31)
[OpenGL] 메뉴 콜백 / 2022.10.23 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 1. 콜백 함수를 사용하여 메뉴를 만드는 방법을 알아보자. #include #include #include GLboolean IsSphere = true; void MyDisplay() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.5, 0.0, 0.5); if (IsSphere) // IsSphere가 true라면 glutWireSphere(0.2, 15, 15); //원구를 그림 else // false라면 glutWireTorus(0.1, 0.3, 40, 20); // 원환체를 그림 glFlush(); } void MyMainMenu(int entryID) { if (entryID == 1) Is..
[OpenGL] 마우스 콜백 / 2022.10.23 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 마우스 이벤트는 마우스 버튼을 누를 때 또는 마우스가 움직일 때 발생한다. 예제를 통해서 알아보자. 1. 마우스 움직임 따라 사각형 그리기 #include #include #include // 눌러진 위치의 좌표 & 현재의 마우스 위치 좌표 // 마우스 콜백 함수와 디스플레이 콜백 함수 사이의 변수 공유를 위해 전역변수로 선언 GLint TopLeftX, TopLeftY, BottomRightX, BottomRightY; void MyDisplay() { glViewport(0, 0, 300, 300); glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.5, 0.5, 0.5); glBegin(GL_POLYGO..
[OpenGL] 리셰이프 콜백 / 2022.10.23 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 리셰이프 이벤트는 1. 처음 윈도우를 열 때 2. 윈도우 위치를 옮길 때 3. 윈도우 크기를 조절할 때 발생한다 아래 코드는 원래 뷰 포트의 중심과 변경된 뷰 포트의 중심을 일치시키면서도 물체 크기와 종횡비를 그대로 유지하는 방법이다. 1. 흰색 바탕에 회색 사각형을 그리는 프로그램을 통해 설명해보자 #include #include #include void MyDisplay() { glClear(GL_COLOR_BUFFER_BIT); // 컬러 버퍼에 초기화 색을 가함 glColor3f(0.5, 0.5, 0.5); //회색 glBegin(GL_POLYGON); //사각형 glVertex3f(-0.5, -0.5, 0.0); glVert..
[OpenGL] 백색 사각형 그리기 / 2022.10.22 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 1. 흑색 바탕에 백색 사각형 그리기 #include #include #include void MyDisplay() { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); // 4개의 정점으로 이루어진 다각형 glVertex3f(-0.5, -0.5, 0.0); glVertex3f(0.5, -0.5, 0.0); glVertex3f(0.5, 0.5, 0.0); glVertex3f(-0.5, 0.5, 0.0); glEnd(); glFlush(); // 현재까지 쌓인 명령어 모두를 프로세서에 전달 } int main() { glutCreateWindow("OpenGL Drawing Example"); ..
벡터 그래픽 / 2022.10.22 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 1. 벡터 그래픽 장치 - 벡터 그래픽 장치 (Vector Display, Calligraphic Display, Stroke Display, Random Display) - 화소 개념이 없음 -> 해상도 무한대 -> 에일리어싱이 일어나지 않음 - 화면 전체에 인이 칠해져 있어 래스터 장치처럼 화면 면적 단위로 밝혀지는 것이 아니라 전자총이 닿는 부분마다 밝혀지게 됨 - 벡터 그래픽 장치는 화소 개념이 없기 때문에 프레임 버퍼를 사용하지 않고 디스플레이 리스트라는 메모리에 해당 물체를 그리기 위한 명령어를 저장함 -> 용량 면에서 훨씬 유리하다 2. 래스터 그래픽 대 벡터 그래픽 래스터 그래픽 : https://cow-kite24.t..
래스터 그래픽 / 2022.10.22 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 1. 컴퓨터 모니터의 기본 원리 - 필라멘트 : 일종의 전자총, 필라멘트에 전류가 흐르면 전자가 방출됨 - 진공관 모니터는 유인된 전자가 쉽게 가속할 수 있도록 음극선관 내부를 진공으로 만듬 -> 공기 분자의 저항이 줄어듬 - 제어 그물 : 전자총에서 비롯된 연속적인 전자흐름의 양 조절 -> 화면에 보이는 밝기 조절 - 집속 양극 : 정확히 가운데로 향하지 않는 전자빔들을 차단하는 역할 - 수직 편향판, 수평 편향판 : 전자빔의 방향을 각각 상하, 좌우로 휘는 데 사용함 2. 래스터 그래픽 장치 2-1) 컬러 모니터 - 모니터 크기는 화면의 대각선 길이를 기준으로 19인치, 27인치 등으로 나타냄 - 화면 종횡비 (Aspect Rat..
컴퓨터 그래픽스 / 2022.10.22 * 출처 : OpenGL로 배우는 3차원 컴퓨터 그래픽스, 한빛아카데미 1. 컴퓨터 그래픽스의 응용 컴퓨터 그래픽스 (Computer Graphics) 란? - 컴퓨터를 사용하여 그림을 생성하는 기술 - 과거의 수작업에서 벗어나 신속하고 경제적인 비용 - 아무런 입력이 없는 상태에서 새로운 그림을 만들어 낼 수 있음 영상 처리 (Digital Image Processing) 이란? - 기존의 존재하는 그림을 개선하거나 인식하는 분야 1-1) 캐드 (CAD : Computer Aided Design) - 건물, 자동차, 비행기, 선박 등의 설계에 이용하는 소프트웨어 - 설계에 필요한 인력이나 시간, 노력 등을 단축하여 설계 효율을 높여줌 - 설계된 부품이 제대로 작동하는지를 미리 시뮬레이션 해볼 수 있음 ..
OpenGL로 배우는 3차원 컴퓨터 그래픽스 연습문제 8장 / 2022.10.19 1) 정규화 벡터의 방향은 원래 벡터와는 반대다. False 2) 두 벡터가 수직이면 이들 벡터의 내적은 0이다. True 3) 벡터 내벅은 벡터이며, 벡터 외적은 스칼라다. False 4) 지엘의 법선 벡터 방향은 명시된 정점 순서에 왼손 법칙을 가해 정의된다. False 5) 시점 벡터와 법선 벡터의 내적의 값이 양이면, 해당 면은 후면이다. False 6) 2x-y+z-10=0으로 표시되는 면이 있다. 이 면에서 시점을 향한 벡터를 (4, 2, 1)이라 할 때 이 면은 후면이다. False 7) 서더런드-핫지먼 알고리즘에서 정점이 내부에서 내부로 이동할 때는 교차점을 계산할 필요가 없다. True 8) 웨일러-애서톤 알고리즘은 오목 다각형에 절단을 가할 수 있다. True 9) 지엘의 절단은 3차원..