[게임 수학] 3장. 벡터 : 가상 공간의 탄생
·
독서/이득우의 게임 수학
☑️ 3장. 벡터 : 가상 공간의 탄생1차원 직선의 한계는 명확하다. 좁은 직선을 벗어나서 넓은 평면에서 시각적으로 의미 있는 물체를 생성하기 위한 개념들을 소개한다. ☑️ 3.1. 데카르트 좌표계데카르트 좌표계(Cartesian Coordinate System) : 직선의 수 집합을 수직으로 배치해 평면을 표기하는 방식.수평으로 배치한 첫 번째 실수 집합의 미지수를 x로 표기수직으로 배치한 두 번째 실수 집합의 미지수를 y로 표기평면의 영역은 총 4개의 분면으로 나뉘게 된다.데카르트 좌표계의 원소는 곱집합과 동일하게 순서쌍으로 표기한다.(x, y) : 좌표 ☑️ 3.2. 벡터 공간과 벡터▶️ 3.2.1. 스칼라와 벡터벡터 공간(Vector Space) : 공리적 집합론의 관점에서 두 개의 실수를 곱집합..
[게임 수학] 2장. 수 : 가상 세계를 구성하는 가장 작은 단위
·
독서/이득우의 게임 수학
☑️ 2장. 수 : 가상 세계를 구성하는 가장 작은 단위모니터 화면에 나타나는 그래픽은 체계화된 수들이 만들어 내는 질서에 불과하다. 그렇기 때문에 가상 세계로부터 게임 콘텐츠가 만들어지는 과정을 이해하고 싶다면 수학 개념을 알아야 한다. ☑️ 2.1. 수와 집합소박한 집합론 : 자연수, 정수, 유리수, 무리수, 실수, 복소수, 사원수 등 같은 원소로 묶인 집합을 의미한다.소박한 집합론은 일상 생활에서는 불편함 없이 사용 가능하지만, 컴퓨터 세상에서는 구성이 불가능하다.공리를 기반으로 수를 구분하는 집합론인 공리적 집합론(Axiomatic set theory)를 사용해야 한다. ▶️ 2.1.1. 연산과 수의 구조이항 연산(Binary Operation) : 두 원소를 통해서 새로운 원소를 만들어내는 연산..
[알고리즘] C++로 이해하는 다익스트라(Dijkstra)
·
공부/알고리즘
☑️ C++로 이해하는 다익스트라(Dijkstra)다익스트라 알고리즘은 최단 경로를 구하는 알고리즘이다. 한 정점에서 모든 정점까지의 최단 경로를 구하면서 각 정점까지의 최단 경로를 모두 찾는다. 오래된 알고리즘이라서 이를 개선하거나 영향을 받은 알고리즘도 많은데, 각각 A* 알고리즘, 벨만-포드 알고리즘, 플로이드-워셜 알고리즘 등이 있다. ☑️ 다익스트라 알고리즘 프로세스각 노드의 거리를 무한대로 초기화한다.시작노드의 거리는 0으로 설정한다.이전 노드를 저장할 공간을 Null로 설정한다.방문하지 않은 노드 집합 Q에 모든 노드를 추가한다.노드 집합 Q가 비어있지 않다면 반복한다Q에서 Dist가 가장 작은 노드를 선택한다.Q에서 선택한 노드를 제거한다.선택 노드의 인접 노드를 순회한다.새로운 거리를 확..
[수학] 삼각함수(Sin, Cos, Tan)
·
공부/수학
☑️ 삼각함수(Sin, Cos, Tan)지금까지 수학을 모르고 살던 나에게 수학의 필요성을 일깨워준 것이 삼각함수다. 그래픽스, 렌더링 과정, 그리고 액션 게임을 개발하면서도 삼각함수가 사용된다. 심지어 유니티가 제공하는 함수 중에는 삼각함수의 개념을 내부적으로 포함하고 있는 것들도 있다. 이번 게시글에서는 삼각함수에 대해서 설명한다. ☑️ 삼각비(Trigonometric ratios)먼저 삼각함수를 알기 위해서 삼각비 부터 시작한다. 삼각비는 삼각형의 세 변의 길이 중에서 두 변의 비례 관계를 나타낸 값을 의미한다. 삼각비와 삼각함수는 밀접한 관계를 가진다. 삼각형은 세 개의 변을 가지고 있다. 그렇기 때문에 비례 관계를 총 6개를 만들어 낼 수 있고, 이 중에서 3가지가 싸인, 코싸인, 탄젠트라는 이..
[수학] 게임 개발을 위한 벡터(Vector)
·
공부/수학
☑️ 게임 개발을 위한 벡터(Vector)벡터는 게임 개발에서 많이 사용되는 수학 개념 중 하나다. 오브젝트의 위치, 이동, 물리 등 다양한 분야에서 사용되고 있다. 이 게시글에서는 수학적 의미의 벡터(Vector)에 대해서 설명한다. 글에서는 편의 상 2차원 벡터를 기준으로 설명하지만, 벡터는 N차원까지 확장할 수 있다. ☑️ 벡터란?벡터(Vector)를 수학적인 관점에서 간단하게 설명하면 크기(Magnitude)와 방향(Direction)을 가지고 있는 물리량으로 설명할 수 있다. 내부 원소들은 크기만을 가지는 스칼라(Scalar)로 이루어져 있으며, 이를 표기하는 방식은 아래와 같이 수학 기호 위에 화살표를 긋는다.☑️ 벡터의 사칙 연산벡터의 사칙 연산은 우리가 알고 있는 사칙 연산과 다를 바 없다..
[자료구조] 트리(Tree) 완벽 정리 : 개념부터 구현까지
·
공부/자료구조
참고 : GeeksForGeeks(https://www.geeksforgeeks.org/tree-data-structure/)☑️ 트리(Tree) 완벽 정리 : 개념부터 구현까지트리는 알고리즘 문제를 풀기 위해서 반드시 알아야 하는 자료구조 중 하나다. DFS, BFS 등 여러 알고리즘에서 트리가 나타나고 사용된다. 뿐만 아니라, 실제 상업 프로덕트에서도 트리 개념은 중요하게 사용된다. 기본적인 트리의 구조부터 여러가지 트리 개념에 대해서 알아보자. 먼저, 트리는 부모-자식 관계를 가지는 계층적 구조의 자료구조를 의미한다. 이름처럼 트리는 나무가 뿌리에서 시작해서 가지로 뻗어나가는 것처럼, 하나의 루트 노드에서 시작해서 여러 개의 자식 노드로 확장되는 구조를 가진다.트리는 Node와 Edge로 연결되어 ..