728x90 반응형 전체 글165 C++복습) 클래스 캡슐화(은닉성) 캡슐화 객체의 캡슐화는 클래스 안의 속성 및 함수를 외부에 감추는 방법으로는 언어적 측면에서 접근지정자(public/private/protected)를 두어 은닉의 정도를 기술하여 구현하는 것을 의미한다.접근지정자에 의해 제한된 멤버들은 컴파일러에 의해 판단된다. 언어적 측면에서 접근지정자에 의해 정의된 해당 멤버변수나 멤버함수는 코드 중에 접근방식을 위반한 코드를 작성하면 컴파일 오류로 처리하고 실행코드 생성을 제한한다.또한 다른 경로로 접근하기를 유도할때도 사용하는 방법이다. public:모든 접근을 허용함private:자기 클래스 내부에서만 접근을 허용함protected:자기 클래스 내부와 상속받은 자식 클래스에서만 접근을 허용함. 다른 경로로 접근하기를 유도 클래스 내부의 메소드들을 직접적.. C++복습 2021. 11. 20. C++복습) 클래스 상속성 클래스 상속성 자식 클래스가 부모 클래스의 특성과 기능을 물려받는 것을 의미한다.예를 들면 자동차라는 클래스는 운전이 가능한 함수와 바퀴 및 핸들이라는 맴버변수가 있다고 가정한다면,이를 상속받은 현대차라는 클래스도 동일한 함수와 맴버변수를 사용할수 있는것이다.상속을 받을때는 클래스 선언시 자식클래스: public 부모클래스로 상속 시킬수 있다.당연하게도 자식클래스가 독자적으로 가지는 함수 및 맴버변수는 부모클래스에서 사용할수 없다.현대차라는 클래스의 현대마크라는 맴버변수는 자동차에 사용 할 수 없다.class Car{public: void move(){}public: int _speed; int _price;};class Hyun :public Car{ //move와 _speed를 상속받아 사용가능}; .. C++복습 2021. 11. 20. C++ 복습) 클래스생성자와 소멸자 클래스에는 맴버함수를 추가 및 제어 할수 있다.그중에서도 생성자와 소멸자는 상당히 특별한 맴버함수인데, 시작과 끝을 알리는 맴버함수이다. 생성자와 소멸자 생성자는 클래스가 탄생하면 자동적으로 호출되는 맴버함수이고, 다양한 생성자가 존재한다. 반면 소멸자는 클래스가 소멸할때 호출되며 단하나만 존재한다. 생성자 1.기본생성자기본생성자는 인자가 없는 생성자를 의미한다. class Constructor{public:Constructor(){ //기본생성자}};2.복사 생성자복사 생성자는 자기자신의 참조타입을 인자로 받는 생성자이다.복사생성자는 이미 만들어져 있는 클래스의 데이터를 복사할때 사용되는 생성자이다. class Constructor{public:Constructor(const Construct.. C++복습 2021. 11. 19. 게임수학) Chapter5. 좌표계 변환행렬 좌표계 변환 행렬 변환행렬에는 SRT변환행렬로 인해 오브젝트가 변화할수도 있지만, 실제 오브젝트는 가만히 있음에도 좌표계의 변경에 따라 좌표를 변화시켜야 될때도 존재한다. 기준점A와 임의의 점 M(x₁,y₁)인 위 그래프를 벡터로 표현해보면 이 된다. 여기서 기준점이 B로 변경된다고 가정한다면 새로운 x축 y축이 생기게 되고 기준점에서 M까지를 라는 백터로 표현이 가능하며, 본래 기준점에서 M까지의 (vec)AM은 라는 식이 성립하게 되는데, 위에서 언급했듯이 (vec)AM은 이므로, 의 식에서 BM을 구할수 있다. 여기서 (vec)u₁을 B좌표계에서 생각하고 임의의 ux,uy를 지정하면 가 되며 또한 로 구분할수 있다. 구해진 식을 대입해보면 이며, 양변에 (vec)BA를 더해주면 가 되는데 (vec).. 게임수학/행렬 2021. 11. 17. 게임수학) Chapter4. 변환행렬(SRT) Translation 행렬 변환행렬(Translation Matrix)은 위치벡터에서 크기,회전,위치변환을 위해 곱해지는 행렬을 의미한다. 예를 들면 행렬 A(x,y,z)인 1x3의 행렬을 3x3의 행렬로 곱하여 원하는 값을 얻기 위한것이다. 위의 그림과 같이 계산하게된다면 x->X =ax+dy+gz y->Y =bx+hz+ye z->Z =cx+fy+jz 가 되며 계산된 각 원소는 x,y,z의 값에 영향을 받게 된다는 것을 알게된다. 이럴 경우 변환행렬에 관계없이 원하는 좌표로 이동이 불가하게 된다. 따라서 변환행렬을 할때는 n차원의 행렬은 n+1차원의 행렬로 변환하여 계산하게 된다. x->X =ax+ey+jz+n y->Y =bx+fy+kz+o z->Z =cx+gy+lz+p w->W =dx+hy+mz+q .. 게임수학/행렬 2021. 11. 17. 게임수학) Chapter3. 행렬 행렬 게임수학에서 행렬은 다방면으로 유용하게 사용되어 지고 있다. 기본적으로 벡터와 행렬을 같이 사용하는 경우가 많다. 예시로 캐릭터나 오브젝트이 좌표 자체는 위치벡터로 관리되어 지겠지만, 변화하는 과정 자체는 행렬로 연산되는것이다. 행렬의 연산 ㆍ행렬의 덧셈/뺄셈 크기와 모양이 같은 행렬은 원소 끼리 덧셈 및 뺄셈을 할수 있다. ㆍ행렬의 곱 행렬의 곱은 크기와 모양이 다소 다른 행렬끼리도 계산이 가능하다. 이때의 조건은 앞에 곱하는 행렬의 행벡터와 뒤에 곱하는 행렬의 열벡터가 동일할때 행렬끼리의 곱을 할수 있다. 행렬 A가 m x n이고 행렬 B가 n x p이면 행렬곱인 AB가 가능하며 m x p의 행렬이 된다. 이 행렬의 곱은 교환법칙이 성립하지 않지만 교환법칙은 성립한다. ㆍ대각행렬 행렬에서 행과 .. 게임수학/행렬 2021. 11. 17. 게임수학) Chapter2. 벡터 스칼라 (Scalar) ㆍ흔히 생각할 수 있는 수치. ㆍ거리의 값이 있을 때 이 값은 방향정보는 가지고 있지 않고 오로지 수치만을 나타내는것이 스칼라 값. 벡터(Vector) ㆍ벡터를 사용하면 정적인 위치가 아닌 동적인 모습(수치+방향)을 나타낼수있음. ㆍ벡터는 동적인 모습(수치+방향)을 가진 것으로 단순히 수치만을 가진 스칼라와는 대조됨. ㆍ벡터의 활용으로는 크기와 방향을 나타내는 기하벡터와 단순히 위치좌표 만을 알려주는 위치벡터로 나뉨. 벡터의 연산 1.벡터의합 벡터자체는 시작점이라는 개념이 없다. 시작점 위치를 지정하는 것은 우리가 정해야되는 것이다. 벡터의 합은 위의 그림처럼 A의 시작점과 B의 끝점을 이어주면 A+B=C라는 벡터의 값이 나오게된다. ※벡터의 차는 벡터의 합과 같다 A+(-B)를 .. 게임수학/벡터 2021. 11. 6. 게임수학) Chapter1. 삼각함수 삼각형은 꽤나 오래전부터 연구되어온것중 하나이다. 게임에서도 이러한 삼각형의 성질을 이용해서 콘텐츠를 제작하는데, 그중에서 삼각함수에 대해 알아보려고 한다. 삼각함수 모든 삼각함수는 직각삼각형에 대해서 정의된다. 삼각함수 도식화 이런 식으로 싸인 코싸인 탄젠트를 구할수있고, 도식화 하면 아래와 같은 형태로 표현할수 있다. 라디안 우리가 흔히 사용하는 0~360°는 바빌로니아각도이다. 현재 각도의 국제 단위계는 라디안이며, 이 크기는 원의 둘레= 2*반지름*π이며 2πr이다. 여기서 360°:2πr=1rad:r의 비례식이 나오며, 1rad = 360° * r / 2πr=>1rad = 180° / π이므로 1rad = 180° / π로 정의될수 있다. 삼각함수 분면에 따른 부호 삼각함수는 각도에 따라 부호가.. 게임수학/삼각함수 2021. 11. 6. Ureal) 언리얼 게임엔진의 이해 게임 엔진을 사용하는 이유 게임 엔진의 장점은 Low-Level을 감싸고 있는 이미 완성된 기반 코드를 제공한다. 개발자는 DirectX등의 기타 게임 개발에 필요한 엔진 및 랜더링을 직접 개발할 필요 없이 게임 엔진에서 이미 구현되어 제공되는 기능들을 재사용하기만 하면 되기에 시간 단축과 효울성이 높아진다. 단, 게임엔진을 사용하여 개발할 경우 나오는 수익의 일부는 엔진개발사에게 돌아가는 단점이 존재한다. 언리얼 엔진의 특징 언리얼 구조 유니티엔진은 컴포넌트 위주로 Empty에서 시작해서 하나하나 쌓아가는 형식의 엔진이라고 한다면 언리얼 엔진은 언리얼 엔진 자체의 타이트한 구조를 바탕으로 게임을 제작하기 때문에 전자와 비교하면 다소 자유도및 범용성이 낮다고 생각되는 단점이 있지만, 엔진에 익숙해진다면 .. UE4 2021. 11. 3. 이전 1 ··· 11 12 13 14 다음 728x90 반응형