본문 바로가기

예전

(133)
구현 해볼 것 1. C의 atoi 함수 구현 2. C의 strlen 함수 구현 3. virtual void foo() = 0; 의 의미는? (클래스 선언 내에서) - 순 가상 함수 4. virtual 함수란 5. 다형성이란 6. virtual 함수를 사용하는 간단한 클래스 구현 7. bool isPowerofTwo(unsigned int num) : num이 2승수 인지를 판단하는 함수 구현 8. void ReverseWordByWord(char* str): str로 전달된 문장의 단어 순서를 뒤집는 함수를 구현할 것(예를 들어 Dog is Cute 가 들어가면 Cute is Dog 로 반환되어야 함) 9. void Swap(unsigned char a, unsigned char b): a와 b가 8bit 숫자일때, ..
한줄정리 해야할 것 1) C관련 - 포인터- 비트 연산자 2) C++관련 - virtual 키워드의 의미- 다형성- 상속- 추상 클래스- static 키워드의 의미- const 키워드의 의미- 포인터와 레퍼런스의 차이- malloc/free와 new/delete의 차이 3) 일반 - 2진수 다루기- 일반적인 논리력 4) 기타 게임에 대한 이해 1. C의 atoi 함수 구현 2. C의 strlen 함수 구현 3. virtual void foo() = 0; 의 의미는? (클래스 선언 내에서) - 순 가상 함수 4. virtual 함수란 5. 다형성이란 6. virtual 함수를 사용하는 간단한 클래스 구현 7. bool isPowerofTwo(unsigned int num) : num이 2승수 인지를 판단하는 함수 구현 8. ..
[3D 수학] 평면 1. 평면이란? - 평면은 하나의 벡터 n ( 평면의 법선 벡터) 과 평면 상의 포인트 p0로 표현된다. p0이 평면상의 점일 때, p - p0로 구성된 벡터가 이 평면의 법선 벡터 n과 직각을 이룰 때, 점 p도 평면 상에 위치한다. 이므로, 이다. 정리하면, 평면의 법선 벡터 n이 단위 벡터일 경우, 로 원점에서 평면까지의 부호를 가진 가장 짧은 거리를 얻을 수 있다. 2. 포인트와 평면 공간 관계 - 위의 초록 박스 식은 평면에서 포인트의 상대적인 위치를 아는데 매우 유용하다. 평면 (n, d)가 있을 때, 포인트 p와 평면과의 관계를 알 수 있다. 3. 평면 구축 - 평면 상의 세 개의 포인트를 지정한다. 세 점 p0, p1, p2가 있다면, 평면 상의 두 개의 벡터를 구성할 수 있다. 평면 상의..
[한줄정리] virtual 키워드 문제 ) virtual 키워드란? - class의 멤버 함수 앞에 virtual을 붙이면 가상 함수가 된다. 그 함수 선언의 끝에 = 0 을 붙이면 순 가상 함수가 된다.
[한줄정리] 오버로딩과 오버라이딩 문제) 오버로딩(Overloading)과 오버라이딩(Overriding)에 대해 설명하세요. - 오버로드란 이름은 같고, 기능은 다른 것입니다. 이름이 같고, 리턴 값이 다르며, 매개변수의 개수 혹은 변수가 다른 것을 오버로드 됬다고 한다. 함수 오버로딩은 함수 명이 같아 인자의 종류에 상관없이 동일한 코드를 사용할 수 있게 한다. - 오버 라이딩은 상속 시 부모 클래스의 멤버 함수를 자식 클래스에서 재정의하는 것이다. 반드시 virtual 키워드가 있어야 한다. 오버로딩과 다르게 함수명 뿐만 아니라 반환값, 매개변수도 모두 같아야 한다.
[3D 수학] 사원수(Quaternion : 쿼터니언) 1. 사원수(Quaternion : 쿼터니언)란? - 3차원 그래픽에서 회전을 표현할 때, 행렬 대신 사용하는 수학적 개념으로 4개의 값으로 이루어진 복소수(Complex Number) 체계이다.아래 글에선 사원수와 쿼터니언을 번갈아가며 썼다. (잠깐! 복소수란 현재 교육과정 중 가장 큰 범위의 수로 실수부와 허수부의 합으로 구성된 수이다.) 그렇다면, 사원수를 사용하는 이유는 무엇일까? - 사원수는 행렬에 비해 연산 속도가 빠르고, 차지하는 메모리의 양도 적으며, 결과의 질에 있어 오류가 날 확률이 적다. 3개의 축에 대한 회전 연산을 동시에 적용하는 경우에 행렬을 사용하면 한 축이 소실되는 김벌락 현상이 발행할 수 있는데, 사원수를 사용하면 이 현상을 막을 수 있다. (미리 말해두지만, 사실 이것도 ..
[3D] 김벌락 (Gimbal Lock) 김벌락 ( 부제 : 오일러 각에 의한 김벌락 현상 ) 1. 오일러 각 - 김벌락을 하기전에 우선 오일러 각에 대해 알아보자. 오일러 각이란 3차원 공간에 강체가 놓인 방향을 표시하기 위한 것이다. 여기서 강체란 외부의 힘에 변하지 않는 물체를 말한다. 일반적으로 x, y, z 축을 이용하며, 각각 Pitch, Yaw, Roll (피치, 야, 롤) 이라고 한다. 3차원 공간에 놓인 객체의 방향은 오일러 각을 사용해 3번의 회전을 통해 얻을 수 있다. - 위 영상으로 축마다 회전하는 각도가 같아도, 회전을 적용하는 순서에 따라 결과가 달라지는 것을 볼 수 있다. 2. 김벌과 김벌락 - 김벌이란 단일 축에 대한 물체의 회전을 허용하는 것으로 수평 유지 장치를 말한다. - 김벌락이란 오일러 각에서 회전 순서에 ..
[3D] Direct3D 초기화 1. Direct3D란? - Direct3D는 3D 가속 하드웨어를 사용해 3D를 표현하게 하는 저수준 그래픽 API로 응용프로그램과 그래픽 장치를 연결하는 중개자이다. - Direct3D 가 공개하는 기능이라 하더라도 그래픽 하드웨어에서 지원하리라는 보장은 없다. 그래픽 카드의 종류는 매우 다양하며 각기 다른 방법으로 동작하기 때문에 Direct3D가 직접 그래픽 장치를 제어하기른 불가능하다. 때문에 Direct3D는 제조사에게 HAL을 구현할 것을 요구한다. - HAL (Hardward Abstraction Layer): HAL은 그래픽 장치가 특정한 작업을 수행하게 하는 장치 고유의 코드로 이를 통해 Direct3D가 각 장치의 세부적인 부분을 제어할 필요가 없게 한다.즉, 하드웨어 장치에 독립적인..