DirectX/[서적] DirectX12를 이용한 3D 게임 프로그래밍 입문
파트1-Chapter-01. 벡터의 외적
헛둘이
2022. 10. 21. 17:34
외적
- 벡터곱셈이라고 하고 가위곱 또는 외적이라고 함
- 결과값으로 벡터가 나옴
- 3차원 벡터에 대해서만 정의됨
- 두 3차원 벡터 u, v와의 외적을 취하면 u와 v 모두에게 직교인 w 벡터가 나온다.
u = (ux, uy, uz), v = (vx, vy, vz)가 있을 때 둘의 외적은 다음과 같다
w = u x v = (uyvz - uzvy, uzvx - uxvz, uxvy - uyvx)
u = (2, 1, 3)
v = (2, 0, 0)
w = u x v를 계산해보면
= (1*0 - 3*0, 3*2 - 2*0, 2*0 - 1*2)
= (0, 6, -2)
- 외적으로 얻은 벡터가 어떤 방향인지는 왼손 엄지 법칙으로 알 수 있음
- w에 u가 직교인지, v가 직교인지 확인하려면 w * u = 0, w * v = 0이면 직교임
u = (2, 1, 3)
w = (0, 6, -2)
w * u를 계산해보면
= 0*2 + 6*1 + (-2)*3 = 0이 되는 것을 알 수 있다.
2차원 유사 외적
- 2차원에는 두 벡터에 수직인 벡터가 존재하지 않음
- 하지만 하나의 2차원 벡터 u = (ux, uy)에 수직인 벡터 v는 얼마든지 구할 수 있음
- 알아두면 유용함
u * x = (ux, uy) * (-uy, ux) = -uxuy + uyux = 0이므로 u와 v는 직교
외적을 이용한 직교화
- w0 = $\frac{v0}{||v0||}$ 으로 설정
- w2 = $\frac{w0 X v1}{||w0 X v1||}$
- w1 = w0 x w2
점
- 벡터는 위치정보를 포함하지 않는다
- 그러나 3차원상에서 어떤 위치를 지정할 수 있는 도구가 필요함
- 이런 도구를 위치벡터라고 한다.
- 이 벡터의 중요한 점은 방향이나 크기가 아닌 머리 끝의 좌표임
- 이 책에서 위치벡터는 점으로 규정함
점의 벡터연산은 아래만 허용함
- 두 점의 차 q-p를 q에서 p로 가는 벡터로 정의할 수 있다.
- 점 p 더하기 벡터 v를 p의 위치를 벡터 v만큼 옮겼을 때 도달하는 점 p라고 정의할 수 있음