본문 바로가기

프로그래밍82

[UE] 피치(pitch), 롤(roll), 요(yaw) 엑터의 트랜스폼 조절 단축키 W 이동 E 회전 R 스케일 x축을 중심으로 물체를 회전시키는 것은 롤 Roll y축을 중심으로 물체를 회전시키는 것은 피치 Pitch z축을 중심으로 물체를 회전시키는 것은 요 YawRoll, Pitch, Yaw는 3D 공간에서의 회전을 나타내는 용어입니다. 이러한 회전을 수학적으로 표현하기 위해서는 벡터와 행렬 연산이 사용됩니다. Roll, Pitch, Yaw 회전은 오일러 각(Euler angles)으로 표현됩니다. 이는 세 개의 회전 축(롤 축, 피치 축, 요 축)을 기준으로 회전하는 것을 나타내는 방법입니다. 각 축의 회전을 나타내는 각도를 각각 α, β, γ로 표현하면, 이를 바탕으로 회전 행렬(Rotation Matrix)을 구할 수 있습니다. 롤 회전 행렬 R_.. 2022. 11. 22.
메모리 구조 오늘은 메모리 구조에 대해 정리해보았다. 메모리라는 말은 누구나 여러번 들어보았을텐데, 오늘 알아볼 내용은 하드웨어 관련 내용은 아니고 우리가 프로그램을 실행시켰을 때 이 메모리에서 어떤 구조를 통해 실행되는지를 알아보려 한다. 기본적으로 C언어, C++ 등 언어들을 통해 코딩을 하고 빌드시키면 .exe파일이 생성되고 이 실행파일이 실행되면 해당 프로그램의 정보가 메모리에 로드되면서 파일이 작동하게 된다. 이때 메모리의 구조는 아래와 같이 구분된다. 1. 코드(code) 영역 2. 데이터(data) 영역 3. 스택(stack) 영역 4. 힙(heap) 영역 그림으로 표현하면 이렇게된다! 위 그림의 출처는 http://www.tcpschool.com/c/c_memory_structure 여기당 그림만 보면.. 2022. 11. 22.
[정리] C++ 시작하기 본 게시글은 C++ 기초 플러스 책을 읽고 제가 필요할때마다 직접 읽어보려고 매우 대충 정리한 글입니다. (진짜 개인공부용 글임) 따라서 다른 분들이 읽으려면 읽기 어려울 수 있음 주의 ㅎㅎ C++의 역사 C++은 이름만 봐도 알 수 있듯이 C언어에서 파생되어 나온 언어이다 (업그레이드 버전이라고 보면 편할 것 같다) C언어는 절차적 언어로 (위에서 아래로 코드가 쭉 나열되게 짜는 방식) 크기가 작고 빠르게 실행되는 프로그램을 작성할때는 유리하나, 요즘 사용되는 모든 프로그램들은 하드웨어가 좋아진 만큼 내용이 방대하고 프로그램의 크기도 커져 C언어만으로 구현하기엔 무리가 있어 C에 객체지향을 얹은 언어 C++이 탄생하게 된다. 객체지향 프로그래밍(OOP)은 나중에 다시 배울건데 간단히 말하면 음....... 2022. 11. 21.
컴파일(Compile) 컴파일의 정의 컴파일은 인간이 이해할 수 있는 언어로 작성된 소스 코드(고수준 언어 : C, C++, Java 등)를 CPU가 이해할 수 있는 언어(저수준 언어 : 기계어)로 번역(변환)하는 작업을 말한다. 사람이 사용하는 C언어나 C++, JAVA 등 일반적인 프로그래밍 언어로 작성된 코드들은 컴퓨터는 이해할 수 없다. 컴퓨터는 무조건 0과1로 이루어진 기계어만 이해할 수 있기 때문이다. 그렇다고 우리가 0과 1로만 프로그램을 작성할 순 없으니 사람이 사용할 수 있는 정도의 언어를 사용하여 컴파일 과정을 거치게 되는 것이다. (참고로 기계어에 가까울 수록 저수준언어 멀 수록 고수준 언어라고 한다) 컴파일 과정은 아래와 같습니다. 1. 전처리(Preprocessing) 단계 간단하게 말하면 말 그대로 먼.. 2022. 11. 19.
[C++] STL map 컨테이너 본 글은 공부용으로 작성된 글입니다. map은 각 노드가 key와 value 쌍으로 이루어진 트리이며, 중복을 허용하지 않는다는 특징이 있다. 중복을 허용하지 않기 때문에 동일한 Key값을 가지는 원소는 하나뿐이어야하며, key가 중복된다면 런타임 오류가 발생하게 된다. (key가 중복되어야할 때는 multimap 를 사용하라한다) map은 first, second가 있는 pair 객체로 저장되는 데 이때 first는 key로 second는 value로 저장된다. 즉, 기본 구조로 key와 value를 가집니다. map의 기본 형태 map map1; C++의 map의 내부 구현은 검색, 삽입, 삭제가 O(logn) 인 레드블랙트리로 구성되어 있다. 레드 블랙 트리는 자가 균형 이진 탐색 트리로써 삽입과 .. 2022. 10. 25.
[C++] STL Deque 컨테이너 본 글은 공부용으로 작성된 게시글입니다. Deque 컨테이너는 시퀀스 컨테이너이자, 배열 기반 컨테이너이다. 그렇기 때문에 Vector 컨테이너와 비슷하게 사용이 가능하다. 다만 배열처럼 선형구조를 가지는 Vector와는 다르게 여러개의 메모리 블록에 나뉘어 저장된다는 특징이 있다. 선형구조(Stack)가 아니기 때문에, 벡터와 달리 push_front() , pop_front() 를 이용해 앞쪽에서도 원소를 추가/제거할 수 있다. 그렇기때문에 중간에 원소 삽입/삭제에 용이하다. (Stack의 특징을 가지는 Vector는 앞에서 원소를 추가하는 것이 불가능하다) Vector는 메모리가 가득 찼을 때 이 전의 메모리를 삭제하고 원소를 복사한 후 메모리를 재할당하는 방식을 사용한다. (그니까 지웠다가 다시 .. 2022. 10. 25.