수학/이득우의 게임 수학

벡터의 내적과 행렬의 곱셈

monstro 2025. 11. 5. 14:59
728x90
반응형

- 개요

행렬은 벡터로 구성되어 있으므로 행렬의 곱셈에서 벡터의 내적을 적용할 수 있다

 

- 행렬과 벡터의 곱셈

행렬과 벡터의 곱셈

 

위와 같이 구성된 행렬과 벡터의 곱셈은 벡터의 내적으로 표현이 가능하다

 

행렬과 벡터의 곱셈을 벡터의 내적으로 표현

 

행렬을 구성하는 두 개의 행벡터 (a, b), (c, d)벡터를 구성하는 열벡터 (x, y)와의 내적으로 표현할 수 있다

 

- 행렬간의 곱셈

행렬과 행렬의 곱셈

 

위와 같이 구성된 행렬과 행렬의 곱셈도 벡터의 내적으로 표현이 가능하다

 

 

위와 같이 행렬과 행렬간의 곱셈 결과벡터의 내적으로 치환할 수 있다

 

- 직교 행렬

임의의 직교 행렬 Q

 

직교 행렬정방행렬로서 구성하는 모든 행벡터열벡터의 크기가 1이고 벡터들이 서로 직교하는 행렬이다

위와 같이 직교 행렬 Q에서 (a, b) / (b, d) / (a, c) / (c, d)의 크기는 1이며 (a, b)와 (c, d)는 서로 직교한다

직교행렬의 특징은 다음과 같다

  • 직교행렬의 전치행렬역행렬
  • 직교행렬과 직교행렬의 전치행렬항등행렬

 

회전 변환행렬 행렬을 구성하는 각 행벡터 열벡터의 크기가 1이면서 서로 직교하므로 직교행렬이다

회전 변환은 물체의 형태가 그대로 유지되는 강체 변환이다

강체 변환의 특징은 다음과 같다

  • 변화된 기저벡터의 크기가 모두 1
  • 모든 기저벡터는 서로 직교
  • 행렬식의 값이 1

 

- 응용

...

FORCEINLINE constexpr float Vector2::Dot(const Vector2& InVector) const
{
	return X * InVector.X + Y * InVector.Y;
}

Vector2 vec1(2.f, 3.f);
Vector2 vec2(4.f, 5.f);
float dotProduct = vec1.Dot(vec2);

...

 

프로젝트에서는 위와 같이 벡터의 내적 계산을 위해 벡터를 의미하는 Vector2 구조체에서 Dot 함수를 제공한다

 

벡터의 내적

 

벡터의 내적은 위와 같이 계산하며 최종적으로 dotProduct에는 23의 값이 저장된다

728x90
반응형

'수학 > 이득우의 게임 수학' 카테고리의 다른 글

세 점의 결합  (0) 2025.11.26
벡터의 내적을 이용한 시야 판별  (0) 2025.11.12
벡터의 내적과 삼각함수의 관계  (0) 2025.11.05
벡터의 내적  (0) 2025.11.05
라인 클리핑 알고리즘  (0) 2025.10.29