전체 글 390

템플릿의 특수화

암시적 구체화 암시적 구체화를 사용하는 이유는 말 그대로 암시적인 제한성 때문인데, 즉 사용하기를 원하는 데이터형을 나타내는 하나 또는 그 이상의 객체를 선언하기 때문이다. ArrayTP stuff; // 암시적 구체화 컴파일러는 객체가 요구될 때까지 그 클래스의 암시적 구체화를 생성하지 않는다. ArrayTP *pt; // 포인터, 아직 객체가 필요 없다. pt = new ArrayTP ; // 이제 객체가 요구된다. 두 번째 구문은 컴파일러에게 하나의 클래스 정의와, 그 정의에 따라 생성되는 하나의 객체를 생성하라고 지시한다. 명시적 구체화 키워드 template을 사용하여 클래스를 선언하고, 사용하려는 데이터형을 나타냈을 때, 컴파일러는 명시적 구체..

복사 생성자 & 복사 대입 연산자 & explicit & extern

explicit 키워드는 자신이 원하지 않은 형변환이 일어나지 않도록 제한하는 키워드이다. extern 키워드는 전역 변수, 함수 또는 템플릿 선언에 적용할 수 있다. extern 키워드는 컨텍스트(문맥)에 따라 네 가지 의미가 있다. 1. 전역 const 변수가 아닌 선언에서 변수 또는 함수가 다른 변환 단위에 정의되도록 지정한다. 변수가 정의된 파일을 제외한 모든 파일에 extern적용해야 한다. 2. const 변수 선언시, 변수에 extern 링크가 있음을 명시해야한다. 모든 선언된 파일에서 extern 은 반드시 선언되어야한다(Global const 변수는 기본적으로 내부 연결을 가진다.) 3. c언어에서의 extern은 한정자 또는 블록의 여러 함수 선언에 적용될 수 있다. 4. 템플릿 선언 ..

Yaw, Roll, Pitch

Roll : x축 (종축)을 중심으로 회전하는 것. Pich : y축 (횡축)을 중심으로 회전하는 것. Yaw : z축 (수직축)을 중심으로 회전하는 것. 요 피치 롤 정리하기 map 알고리즘 개빨라서 코테에서 진짜 많이 쓴다. list에서 value 값 받아와서 텍스쳐 로드임 map이 배열 인덱스 접근보다 훨씬 빠른 1:1 접근이다 image.GetMetadata -> 이미지의전체픽셀수를 가져와야하면 저걸로 가져올 수있다. image.겟픽셀즈함수로 사운드도 채널로 1:1매칭 연발은 스탑 후 플레이

C++ STL Pair & Map

Pair Pair 란? pair 클래스는 사용자가 지정한 2개의 타입의 데이터를 저장하는 데 사용한다. 서로 연관된 2개의 데이터를 한 쌍으로 묶어서 다룰 때 사용하면 편리하다. 만약 pair 클래스를 사용하지 않고 코드를 짜야 한다면, 서로 연관된 2개의 데이터를 다룰 때, 구조체를 따로 정의해야 한다. 여간 번거로운 일이 아니기에 pair 클래스를 이용함으로써 서로 다른 2개의 연관된 2개의 데이터를 편리하게 관리가 가능하다. Pair의 헤더파일 pair 클래스는 #include 라는 헤더파일에 존재하는 STL이다. 그러나 다음 헤더파일들은 utility 헤더 파일을 포함하는 헤더 파일이다. #include // utility 헤더파일이 포함됨. #include // utility 헤더파일이 포함됨...

C++ STL) deque란?

deque( double ended queue ) 양쪽에서 끝나는 que(큐)를 줄여서 '데크'라고 불린다. stack의 경우엔 최상단에서 삽입, 삭제가 일어나지만, queue같은 경우는 한쪽에서 삽입, 반대쪽에서 삭제가 일어난다. (한쪽 입구에서 삽입, 삭제 중 하의 기능만 가능) deque 의 클래스는 선형 배열로 지정된 형식의 요소를 정렬하고 벡터와 같이 모든 요소에 대한 빠른 임의 액세스를 허용하고 컨테이너 뒷면에서 효율적인 삽입 및 삭제를 허용하는 시퀀스 컨테이너의 클래스 템플릿이다. 이러한 특성은 스택과 큐를 합친 기능으로 모든 입구에서 삽입 삭제가 가능하다. 구조 stack의 경우엔 LIFO(Last In First Out) deck의 경우엔 FIFO(First In First Out) de..

OBB 충돌

OBB 충돌 체크 알고리즘 설명이다. 이 설명은 벡터를 다룬다. 벡터와 벡터의 내적을 모르면 이해하기가 어려울 수 있다. AABB와 OBB는 직사각형 모양의 Bounding Box를 이용해 객체들이 충돌했는지를 판단한다. AABB는 Axis Aligned Bounding Box의 약자로, 축 방향으로 정렬된 경계 경계 상자(Bounding Box)를 뜻한다. 2차원으로 생각했을 때, 모든 변이 x, y 축에 평행한 직사각형을 경계 상자로 정해 충돌 체크를 한다. 반면, OBB는 Oriented Bounding Box의 약자로, 방향성이 있는 경계 상자(Bounding Box)를 뜻합니다. 2차원으로 생각했을 때, 회전이 있는 (회전이 된) 도형을 경계 상자로 정해 충돌 체크를 합니다. (이 글에서는 2차..

CPU와 메모리

CPU 컴퓨터의 두뇌를 담당한다. 다양한 환경에서의 작업을 빠르게 수행하기 위해 ALU의 구조가 복잡하고 명령어 하나로 처리할 수 있는 기능도 많으며 각종 제어 처리를 위한 부분이 많다. GPU 특화된 연산을 빠른 속도로 처리하기 위해 단순한 ALU를 여러 개 갖고 있는 구조로 이루어져 있다. 이 때문에 CPU 단독으로는 아무것도 처리할 수 없으나, GPU를 제어하는 것은 여전히 CPU의 역할이다. GPU는 병렬 연산으로 단순하지만 규모가 큰일에 특화되어있다. 캐시 메모리 캐시(Cache)의 개념 "캐시 되어 있어서 빠른 거야"라는 말을 들어본 적 있을 것이다. 캐시는 잠시 저장해둔다는 의미이고, 기능이다. 캐시 메모리라고 하면 실제 메모리와 CPU 사이에서 빠르게 전달을 위해서 미리 데이터들을 저장해두..

정리 230319

삼각함수란 삼각비 + 호도법 + 함수 이다. 삼각비는 직각삼각형 세 변의 길이의 비는 각에 대한 일정한 관계가 있다. 이러한 일정한 관계를 함수로 나타낸 것이 삼각함수이다. 삼각비에서는 직각삼각형에서 세 변의 길이의 비를 이용했다면 삼각함수에서는 좌표평면 위의 좌표를 이용하는 차이가 있다. 또 삼각비에서는 육십분법으로 나타낸 각을 이용했다면 삼각함수에서는 호도법으로 나타낸 각을 이용한다. 삼각함수의 뜻, 삼각함수의 정의 xy좌표평면에 반지름의 길이가 r인 원을 그리고 원 위의 임의의 점을 P라고 하면 x축 양의 방향을 시초선으로 동경하고 선분OP가 이루는 각을 세타θ라고 할 때, y/r, x/r, y/x는 θ의 크기에 따라 한 가지로 정해진다. r != 0 일 때, θ -> y/r , θ -> x/r ,..

벡터

벡터란? 벡터는 수학, 물리학, 공학에서 크기와 방향을 갖춘 양을 일컫는다. 이공학 분야에서 많이 사용되는 수학적인 양의 표현 기법으로 거리 무게 속력 등 크기만을 나타내는 1 차원적인 양인 스칼라와는 달리, 힘, 속도 등과 같이 크기 및 방향 등 2차원 이상 즉, 2 이상의 원소(요소)들에 의해, 어떤 양을 표현하는데 유용한 표기법 벡터의 여러 정의들 기하학적인 측면 : 유향 선분 - 크기 및 방향에 의한 표현 ex) 힘, 모멘트, 변위, 속도, 가속도, 운동량, 열유동 등 대수적 측면 : 수 또는 함수들의 나열 - 실수 또는 복소수 또는 함수를 원소(성분)로 갖는 순서쌍(Oredered Pair/n-tuple) ex) 좌표, 벡터 함수 등 추상적 대상 (object) : 벡터공간 상에서 대수적 성질을..

카테고리 없음 2023.03.03

행렬

행렬이란? 행렬이란 영어로 'matrix'라고도 하며, 수 또는 다항식 등을 직사각형 모양으로 배열한 것이다. 영단어 'matrix' 의 사전적 의미중 가장 첫 번째 뜻은 (숫자, 기호 등을 가로, 세로로 나열해 놓은) 행렬[매트릭스] 라고 정의되어 있다. 즉, 수, 문자, 함수 등을 네모꼴 괄호 안에 배치하여 놓은 것이다. - 각각의 수 또는 함수 등을 원소/ 성분/ 요소 (element, component)로 갖는다. 행렬의 용도 행렬의 용는 크게 두 가지로 나뉜다. 정적인 사용 정보를 표로써 정형화시켜, 저장하고 처리하는데 사용된다. ( ex) 엑셀 프로그램 등 ) 연립 선형 방정식의 표기를 간소화시킨다. 시각적 이미지 및 디지털 음을 전송하는 수학적 처리에 사용된다. 동적인 사용 선형 대수 방정식..