본문 바로가기

c++60

4. 삼각형 움직이기 이번엔 아주 간단한 애니메이션을 적용시켜본다. 쉐이더 역시 하나의 프로그램이기 때문에 외부에서 변수를 받아서 변환할 수 있는 것을 연습할 수 있다. 삼각형을 움직이는데 필요한 변수 선언 ▼ 코드 //--------------------------------------------- GLuint VAO, VBO, shader, uniformXMove; // 방향값(왼쪽, 오른쪽) bool direction = true; // 삼각형의 차이값 float triOffset = 0.0f; // 삼각형의 최대 차이값 float triMaxOffset = 1.0f; // 삼각형의 변화값 float triIncrement = 0.01f; //-------------------------------------------.. 2021. 1. 17.
0. 교환함수(Swap) 포인터 방식 C99 ▼ 관련 개념 Pointer & Call By Address ▼ 구현 코드 void Swap(int* lhs, int* rhs) { int _temp = *lhs; *lhs = *rhs; *rhs = _temp; } ▼ 사용 예시 Swap(&lhs, &rhs); 포인터(*)를 이용한 방법이다. 포인터는 C 표준에서는 함수 인자에 직접적으로 접근할 수 있는 유일한 방법이다. CPP B.11 ▼ 관련 개념 Reference & Call By Reference ▼ 구현 코드 void Swap(int& lhs, int& rhs) { int temp = lhs; lhs = rhs; rhs = lhs; } ▼ 사용 예시 Swap(lhs, rhs); 참조자(&)를 이용한 방법이다. CPP에서 추가.. 2021. 1. 17.
3. 삼각형 그리기(2) 지난 정리에 이어 이제 쉐이더 프로그램을 만들어보기 전에 이전 코드를 정리한다. 특정 기능을 하는 코드들을 되도록이면 묶어서 함수로 만드는 것이 좋은 것도 있지만 쉐이더의 코드 역시 꽤 길기 때문이다. CreateTriangle 함수 ▼ 삼각형 정점 좌표, VAO, VBO를 모두 함수로 빼낸다. GLuint VAO, VBO; void CreateTriangle() { GLfloat vertices[] = { -1.0f, -1.0f, 0.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f }; // OpenGL 정점 배열 생성기를 사용해서 VAO를 생성 glGenVertexArrays(1, &VAO); // 우리가 생성한 VAO를 현재 수정 가능하도록 연결한다. glBindVertexA.. 2021. 1. 17.
210115(금) 코로나의 영향으로 프로그래밍 수업의 순서가 꼬여서 중간에 알고리즘 수업을 진행했다. 먼저 교수님께서 프로그래밍 수업을 듣는 우리가 얼마나 C에 대해서 이해하고 있는지 확인하기 위해 문제를 내주셨다. 두 배열의 합을 저장하는 배열 출력하기 ▼ 문제 내용 인자를 5개~10개 가지는 동일한 크기의 배열 두 개를 선언하고 임의의 값으로 초기화 한다. 배열 하나를 더 이용해서 두 배열의 같은 색인의 인자들끼리 합을 저장하고 출력하는 함수를 만들어서 출력하라. ▼ 문제 목적 배열과 순환문에 대해서 이해하고 있는지 확인하는 문제다. ▼ 내가 푼 코드 #include void Print(int a, int b, int c) { printf("iArr1(%d) + iArr2(%d) = iArrR(%d)\n", a, b,.. 2021. 1. 15.