본문 바로가기

College Computer Science60

[컴퓨터그래픽스] 중간고사 대체 레포트 1 : Raster Scan Display와 Random Scan Display의 특징과 구조 2 : 사각형을 직선(일차식의 그래프)을 축으로 하여 회전하기 (matrix 활용 계산) 3 : 3D viewing 좌표계 순서 (Modeling - World - Viewing - Projection - Normalized - Device Coordinates) 4 : 좌표계 변환 계산 (World -> Viewing) (matrix 활용 계산) 5 : Ray-Tracing, Distributed Ray-Tracing 6 : Shading의 종류 - flat, gouraud, phong 2021. 4. 3.
[컴퓨터그래픽스] 키보드 마우스 입력을 통한 화면 변경 #include #include #include #define PI 3.141592 #define CCW 0 #define CW 1 using namespace glm; vec3 my_triangle1[3] = { vec3(-10.f, 0.f, 0.f), vec3(10.f, 0.f, 0.f), vec3(0.f, 10.f, 0.f) }; // CCW vec3 my_triangle2[3] = { vec3(10.f, 0.f, 0.f), vec3(-10.f, 0.f, 0.f), vec3(0.f, 10.f, 0.f) }; // CW vec3 faceNorm[2]; vec3 eyeVec; GLfloat angle[2]; GLint culling = 3; // nothing first GLint isTriangle1.. 2021. 4. 3.
[컴퓨터그래픽스] openGL 사용하지 않고 culling 수행하기 #include #include #include #define PI 3.141592 #define CCW 0 #define CW 1 using namespace glm; vec3 my_triangle1[3] = { vec3(-10.f, 0.f, 0.f), vec3(10.f, 0.f, 0.f), vec3(0.f, 10.f, 0.f) }; // CCW vec3 my_triangle2[3] = { vec3(10.f, 0.f, 0.f), vec3(-10.f, 0.f, 0.f), vec3(0.f, 10.f, 0.f) }; // CW vec3 faceNorm[2]; vec3 eyeVec; GLfloat angle[2]; GLint culling = CW; GLint isTriangle1 = 0; GLint isTr.. 2021. 4. 3.
[컴퓨터그래픽스] gluLookat 변경을 통한 애니메이션 만들기 #include //#include int g_timeDelta = 0, g_prevTime = 0; GLfloat g_x = 0.f; GLfloat g_velocityX = 0.f; void RenderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); g_x += g_velocityX + (GLfloat)g_timeDelta / 1000.f; //printf("%f", g_x); glLoadIdentity(); gluLookAt(g_x, 0.f, -0.1f, g_x, 0.f, 0.f, 0.f, 1.f, 0.f); glColor3f(1.0f, 1.0f, 1.0f); glRectf(.25, .25, -.25, -.25); glu.. 2021. 4. 3.
[컴퓨터그래픽스] transformation, scale, rotation #include #include #include int g_timeDelta = 0, g_prevTime = 0; int inc_y = 1; GLfloat g_x = 0.f; GLfloat g_y = 1.f; GLfloat g_velocityX = 0.5f; GLfloat g_velocityY = 0.01f; GLfloat vertices[] = { -0.8, -0.8, -0.8, 0.8, -0.8, -0.8, 0.8, 0.8, -0.8, -0.8, 0.8, -0.8, -0.8, -0.8, 0.8, 0.8, -0.8, 0.8, 0.8, 0.8, 0.8, -0.8, 0.8, 0.8 }; GLubyte faces[] = { 7, 5, 6, 7, 4, 5, 3, 2, 1, 3, 1, 0, 2, 6, 5, 2,.. 2021. 4. 3.
[컴퓨터그래픽스] 소용돌이 실습 (함수 사용하지 않기) void RenderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); GLfloat rotation[16] = { cos(30.0), 0, -sin(30.0), 0, 0, 1, 0, 0, sin(30.0), 0, cos(30.0), 0, 0, 0, 0, 1 }; GLfloat translation[16] = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -0.1, 0, 1 }; glPushMatrix(); glColor3f(0.5f, 0.5f, 0.5f); glPointSize(3); glBegin(GL_POINTS); glVertex4f(0.25f, 0.8f, 0.0f, 1.0f); glEnd();.. 2021. 4. 3.
[자료구조 프로그래밍 연습문제] 선택 정렬, 이진 탐색, 다항식 곱하기 1. selection sort A. 교재 1장 Program 1.4: Selection sort의 함수 sort()는 오름순(non-decreasing order) 정렬과 내림순(non-increasing order) 정렬 중 어느쪽을 수행하는가? 교재의 함수 sort()를 교재의 정렬 순서와 반대 순서로 정렬하도록 수정한 C 코드를 제시하시오. 오름순(non decreasing order) 정렬을 수행한다. void sort(int list[], int n) { int i, j, max, temp; for (i = 0; i list[max]) max = j; SWAP(list[i],.. 2021. 4. 3.
[C 프로그래밍 실습] 기말고사 문제 1. 다음 내용을 참고로 구조체 fraction을 정의하고, 2개의 분수를 표준입력으로 받아, 두 분수의 사칙 연산을 수행하는 프로그램을 작성하시오. (20점) 구조체 fraction 멤버 구성: 정수형의 분자(numerator)와 분모(denominator) 구조체 변수 선언은 포인터 형으로 한다. 연산식 입력 : 분수1 연산자 분수2 분수와 연산자 사이에는 임의의 공백이 있을 수 있다(뺄셈 연산 참고) 계산 결과후 약분(reduction of fraction)은 불필요(곱셈 연산 결과 참고) 연산은 무한 루프로 실행 2. 다음 파일(in.txt) 내용을 참고하여 구조체를 정의하고, 파일의 내용을 읽어 연결리스트를 구성하시오. 각 학생의 점수의 합을 구하여 아래와 같이 연결리스트를 출력하는 프로그램을 .. 2021. 1. 8.
[C 프로그래밍 실습] 동적 메모리와 전처리 2 (Lab 14) Program 1 : 전처리 함수, 매크로 Program 2 : 전처리 함수, 매크로 Program 3 : 전처리 함수, 매크로, 삼항 연산자 Program 4 : 버블 정렬 Program 5 : 선택 정렬 Program 6 : 삽입 정렬 Program 1 다음을 참고로 매크로 PRINTM(exp)를 정의하여 다음 결과가 나오도록 프로그램을 작성하시오. Dev C++ 의 경우 전처리 연산자(#, #@, ##)는 printf() 인자로 사용할 경우 오류 발생하나, 아래 문제를 해결하기 위한 매크로 정의에는 문제 없음 매크로 PRINTM (exp)는 “Expression: exp = 연산 결과값” 으로 출력 int a = 2; PRINTM(3 * 4 + 3 / a); #include #define PRINT.. 2021. 1. 8.