게임 수학

벡터(Vector)

Leesh96 2023. 5. 1. 02:00

보통 벡터를 설명할 때 가장 많이 사용하는 예시가 속력과 속도이다.

 

속력 : 크기                          -> 스칼라

속도 : 크기 + 방향               -> 벡터

 

벡터

크기와 방향을 가지는 물리적 양이며, 화살표로 크기와 방향을 모두 나타낸다

 

프로그래밍에 쓰이는  벡터타입은 원점에서 시작하는  벡터

프로그래밍에서의 벡터 사용법

오브젝트가 움직이는 크기(벡터), 향할 방향,  위치한 죄표(원점에서의  방향,  크기)

단위 벡터

크기가 1인 벡터
단위벡터의  좌표는   (cos, sin)으로  표현  가능


벡터의 길이 (스칼라)

특정한 하나의 수치와 단위로 표현, 방향은 없다.

단위벡터(방향) x 스칼라(원하는 속도, 크기)


정규화

어떤 한 벡터를 벡터의 길이로 나누어서 그 벡터의 길이를 1로 만드는 것, 즉 단위벡터로 만드는 것

 

벡터의 합과 차

프로그래밍에서의 벡터의 합과  차

벡터의 합 : 오브젝트의 이동거리

벡터의 차 : 오브젝트간의  거리

 

 1) 평행사변형 법  AB + AC

평행사변형 법(유튜브 수악중독채널 출처)

 2) 꼬리에 꼬리를 무는 벡터 AB + BC

꼬리에 꼬를 벡터 (유튜브 수악중독채널 출처)

 

벡터의 덧셈에 관한 성질

 -  교환법칙이 성립된다  (AB + BC  = BC + AB)

 -  결합법치깅 성립된다. (AB + BC) + CD = AB + (BC + CD)

 -  영백터를 더했을 때      AB + 0 = 0 + AB = AB

 -  방향이 반대인 벡터를 더하면 영벡터가 된다.  AB + BA = BA + AB = 0

 

벡터의 차

 1) 평행사변형 법  AB - AC = AB +(CA)  = CB

 2) 꼬리에 꼬리를 무는 벡터 AB - BC

벡터의 차(유튜브 수악중독채널 출처)

 

벡터와 스칼라의 곱

스칼라의 곱은 숫자를 곱하는 것

AB의 곱은 2 * AB

즉, c * AB (c배 곱한다)  = c|AB|

 - 크기 : AB크기의 c배

 - 방향 : AB와 동일

 

벡터의 내적

벡터의 내적(유튜브 수악중독채널 출처)

기하학적 의미로 한 벡터를 다른 벡터 위로 정사형시킨 길이(OH)와 다른 벡터의 길이 OB벡터의 길이의 곱셈

n차원 유클리드 공간에서 정의된 연산  AB ㆍ BC      => AB, BC의 내적 또는 스칼라곱이라고 한다

 

- 정의 :  AB = (AB₁, AB₂, ...) BC = (BC₁, BC₂, ...) 일 때 ABㆍBC = |AB| * |BC| * cos∂

   AB = (AB₁, AB₂) , BC = (BC₁, BC₂)

   ABㆍBC = (AB₁, AB₂)ㆍ(BC₁, BC₂) = AB₁BC₁ + AB₂BC₂

-  AB = 0 or BC = 0일때 ABㆍBC = 0

-  ABㆍAB = |AB| x |AB| x cos = |AB|²

 

두 백터가 수직일때 두 벡터의 내적은 0이다.

 

벡터의 외적 (3차원에서 생각)

AB x BC = (AB₁, AB₂, AB) x (BC₁, BC₂, BC) = (AB₂,BC - ABBC₂, ABBC₁ - ABBC, ABBC₂ - ABBC₁)

 

외적의 방향

a에서 b로 이동한다고 가정하며, 손가락을 방향으로 접어주게 되면 엄지손가락이 가리키는 방향이 두 a b 외적의 방향이다.

 

외적의 크기

AB = a, BC = b라고 하면 

a x b = (ab - ab, ab - ab, ab - ab)  ... 제곱하면

| a x b |² =  (ab₃)²  +  (ab₂)²  -  2a₂a₃b₂b₃

                  +  (ab₁)²  +  (ab₃)²  -  2aa₃bb

                  +  (ab₂)²  +  (ab₁)²  -  2a₁abb₂

                  +  (ab)²  +  (ab)²  (ab)²  -  (ab)²  -  (ab)²  -  (ab)²

              =  (a² + a² + a²)b² + (a² + a² + a²)b² + (a² + a²+ a²)b² - (ab+ ab+ab)²

              =  (a² + a² + a²)(b² + b² + b²) - (ab+ ab+ab)²

              =  | a |² * | b |² - (aㆍb)²   ......................................................... (aㆍb)²  = | a |² * | b |² * cos²

              =  | a |² * | b |² (1 - cos²∂)

              =  | a |² * | b |² * sin²

| a x b | = | a | * | b | * sin∂ (스칼라)

 

즉,

a와 b의 외적을 n이라 하고 |n| = 1이라고 한다면

a x b = (|a| * |b| * sin∂) * n 이다.