수학 9

선분과 한 점과의 최단거리 알고리즘

선분과 한 점과의 최단거리는 구해서 어디다 쓸까? 캐릭터가 선로와 출동하는지 판단하는 기능을 구현할 때,공간 분할 기법을 사용하여 검색 범위를 줄일 때 등이 있다.  선분과 점의 위치 관계를 분석하여 3가지 예외상황으로 나누어 풀 수 있습니다. 1.     점 P에서 선분 AB로 수선을 그릴 수 있을 때2.     점 P에서 선분 AB로 수선을 그릴 수 없으며,         점 P가 점 A랑 더 가까울 때3.     점 P에서 선분 AB로 수선을 그릴 수 없으며,        점 P가 점 B랑 더 가까울 때 이 3가지 상황은 AP벡터를 AB벡터에 내적을 이용한 정사영시켜 구분할 수있습니다. AP 벡터와 AB 벡터를 정사영시킨 벡터가 길이 0이하라면점 P는 선분 AB에 수선을 그을 수 없는 상태입니다. ..

3차원 벡터

3차원 벡터의 길이는 피타로가스의 정리를 두 번 적용해서 구할 수 있다.   벡터를 순전히 방향을 나타내는 용도로만 사용하는 경우벡터의 길이는 그닥 중요하지 않다.각 벡터의 성분을 벡터의 크기로 나누면 벡터가 정규화 된다.  내적접곱(dot product)라고도 부르는 내적(inner product)은 스칼라값을 내는 벡터 곱셈의 일종이다.결과가 스칼라라서 스칼라 곱이라고 부르기도 한다.  다른 말로 하면 내적은 대응되는 성분들의 곱의 합이다.내적의 정의만 봐서는 내적의 기하학적 의미가 분명하지 않는데,코사인 법칙을 적용해 보면 다음과 같은 관계를 찾아낼 수 있다.  여기서 θ는 0 따라서 두 벡터의 내적이 두 벡터 사이의 각도의 코사인을벡터 크기로 비례한 것임을 뜻한다. u와 v 둘 다 단위벡터일 때 ..

이산 수학 - 논리와 명제

추론(argument) 란, 주어진 명제가 참인 것을 바탕으로 새로운 명제가 참이 되는 것을 유도해내는 과정이다. 전제(premise)란, 추론 과정에서 주어진 명제들이다. ex) p₁,p₂,p₃ .... pn 명제에는 순서가 그렇게 중요하지 않다. pn-3 ... pn = q 결과 유도도 동일하다. 결론(conclusion)이란, 추론 과정에서 새롭게 유도된 명제이다. 추론은 유효 추론, 허위 추론 두 가지로 나눌 수 있다. 유효 추론 (valid argument) : 전제가 참(T)이고 결론도 참(T)인 추론 허위 추론 (fallacious argument) : 결론이 거짓(F)인 추론 유효 추론 / 허위 추론의 여부는 진리표를 이용하거나 여러 추론 법칙을 이용하여 증명할 수 있다. 이 외에도 추론 ..

이득우의 게임 수학 3장 벡터(2차원 공간)

벡터로 원그리기반지름이 5인 원을 생성하기 위해,먼저 원을 둘러싼 사각형 영역을 생성하고,이로부터 원을 구성하는 벡터만 골라내는 방법을 시각화 할 것이다. 반지름의 크기가 5보다 작거나 같은 벡터를 묶으면 원의 형태가 만들어진다. #pragma oncenamespace CK{struct Vector2...FORCEINLINE float Vector2::Size() const{ return sqrtf(SizeSquared());} // x^2 + y^2의 값을 계산한 후 그 값을 반환한다.FORCEINLINE constexpr float Vector2::SizeSquared() const{ return X * X + Y * Y;}...  이 영역을 구하는 벡터의 크기는 벡터의 크기 수식을 사용해 계산..

이득우의 게임 수학 열기

Update - 콘텐츠를 구성하는 물처의 최종 위치를 계산하고 이를 변수에 저장 Render - 변수에 저장된 물체의 위치를 읽고, 이를 중심으로 물체를 화면에 그려냄 실제 실습 코드가 사용될 영역 이 코드에서 InputAxis::XAxis는 enum class 이다. 어떠한 상태 변환을 enum으로 변환시켜주는 것이다.// 게임 로직과 렌더링 로직이 공유하는 변수 Vector2 currentPosition(100.f, 100.f); // 게임 로직을 담당하는 함수 void SoftRenderer::Update2D(float InDeltaSeconds) { // 게임 로직에서 사용하는 모듈 내 주요 레퍼런스 auto& g = Get2DGameEngine(); const InputManager& input..

[이산 수학] Chapter 1 집합과 논리

1. 이산 수학이란?2. 집합이란?3. 논리란?   1. 이산 수학이란?이산 수학은 그래프(정점과 간선의 집합) 및부울 대수(정의된 특정 연산을 갖는 집합)와 같은 객체들을 다룬다.   2. 집합이란?집합의 개념은 수학과 응용 수학의 모든 분야에서 기본이 된다.집합(set)은 객체들의 모임이다.여기서 객체들 사이의 순서는 중요하지 않다.이 객체들을 원소 또는 멤버라고 부른다.만약 어떤 집합이 유한하고 지나치게 크지 않다면집합 내의 원소들을 나열하여 그 집합을 기술할 수 잇다.예를 들어 아래의 수식을 보자.A = {1,2,3,4}해당 집합 A가 4개의 원소 1,2,3,4로 구성되어 있다는 것을 나타낸다.집합은 원소들에 의해 결정되며, 원소들이 나열되는 특정한 순서에 의해서 결정되는 것은 아니다.따라서 집합..

유클리드 공간

유클리드 공간 (유클리드 기하학 Euclidean Geometry)란? 유클리드가 연구했던 평면과 공간을 일반화한 것을 말한다. 유클리드 기하학은 공간에서의 거리, 각도 등을 다루는 수학 분야이다. 이 일반화는 유클리드가 생각했던 거리와 길이와 각도, 좌표계를 도입하여, 임의차원의 공간으로 확장한 것을 말한다. 이는 표준적인 유한 차원, 실수, 내적 공간이다. 유클리드 공간은 수하학적 모델링, 물리학, 컴퓨터 그래픽스 등의 다양한 분야에서 사용된다. 유클리드 벡터 또는 벡터는 특수한 경우로, 유클리드 공간에서의 크기와 방향을 모두 포함하는 기하학적 대상이다. 피타고라스 정리와 비슷한 개념이며, 실제 거리를 구할 때에도 사용하지만, 인공지능 등 다양한 분야에서 유사도를 판단할 때 사용된다. 피카고라스 정리..

행렬과 삼각함수

삼각함수 삼각함수란? + 행렬을 들어가기 전에 게임 수학에서 행렬을 쓰는 이유. 선형 변환의 원리는 게임의 가상 세계를 구축하는 데 필요한 모든 변환의 기본 바탕이 된다. 따라서 선형 변환을 안정적이고 빠르게 계산할 수 있는 체계가 구축된다면, 컴퓨터를 사용해 게임이 요구하는 가상 세계의 기반을 손쉽게 구축할 수 있을 것이다. 수학자들은 선형 변환의 계산 과정을 체계화하여 손쉽게 계산할 수 있는 편리한 도구를 발명했는데 그것이 바로 행렬이다. 행렬 행렬은 수를 사격형의 형태로 행과 열을 맞춰 배열한 테이블이다. 따라서 n개의 행과 m개의 열로 구성된 반듯한 사각형의 형태를 띤다. 예를 들어 위 행렬은 2 x 3 행렬은 다음과 같이 2행 3열의 형태를 띤다. A는 열 백터, B는 행 백터라 부른다. 선형 ..