내적
- 내적은 대응되는 성분들의 곱들의 합, 점곱이라고도 부름
- u*v = (ux*vx) + (uy*vy) + (uz*vz)
- 크기와 방향을 가지고 있으나 일반적인 곱셈과는 다름
- 동일 방향 길이의 곱이 벡터 내적이다.
- 벡터는 방향이라는 값을 가지고 있기 때문에 막 곱할 수 없음
- 그러니 다른 벡터에서 또 다른벡터에 수선을 내려서 그 성분(cos)만큼 곱하는 것
- 따라서 아래와 같이 쓸 수 있다.
u*v = |u|*|v|*cos(θ)
- u, v가 단위벡터일 경우 u*v는 두 벡터 사이 각도의 코사인
- 중요한 기하학적 속성 3가지
- 1. u*v = 0이면 u와 v는 직교이다.
- 2. u*v > 0이면 두 벡터 사이 각도는 90도보다 작다
- 3. u*v < 0이면 두 벡터 사이 각도는 90도보다 크다
예제 1. u와 v사이 각도 구하기
Q. u = (1, 2, 3)이고 v = (-4, 0, -1)일 때
u * v = (1, 2, 3) * (-4, 0, -1) = -4-3 = -7
||u|| = √1² + 2² + 3² = √14
||v|| = √(-4)² + 0² + (-1)² = √17
cosθ = cos^-1 -7/√14√17 = 117º (코사인의 역함수)
예제 2. 벡터 v와 단위벡터 n 내적을 이용해서 p 표현하기
- p=kn을 만족하는 스칼라 k가 존재함
- ||n||은 1이므로 반드시 ||p|| = ||kn|| = |k|||n|| = |k|이다. (k는 오직 p와 n이 반대 방향일떄만 음수)
- 삼각함수 법칙을 적용하면 k = ||v||cosθ가 나옴
- 따라서 p = kn = (||v||cosθ)n이다. 그런데 n은 단위벡터이므로,
- p = (||v||cosθ)n = (||v|| * 1cosθ)n = (||v|| ||n||cosθ)n = (v*n)n
- 이 공식에 따르면 k = v*n이다.
- 이는 n이 단위벡터일 때 v*n의 기하학적 의미를 말해줌
- 이러한 p를 n에 대한 v의 직교투영 또는 정사영이라고 부르며 흔히 p = projn(v)라고 표기한다.
- v를 하나의 힘으로 간주하면 p는 힘 v중에서 방향 n으로 작용하는 부분이라고 볼 수 있다.
- 이와 비슷하게 벡터 w = perpn(v) = v - p는 힘 v중에서 n의 수직방향으로 작용하는 부분임
- v = p + w임을 주목해야 함, 즉 v는 직교벡터 p와 w의 합으로 분해된다.
- n이 단위길이가 아니면 먼저 n을 정규화하면 된다.
'DirectX > [서적] DirectX12를 이용한 3D 게임 프로그래밍 입문' 카테고리의 다른 글
파트1-Chapter-01. 벡터의 외적 (0) | 2022.10.21 |
---|---|
파트1-Chapter-01. 길이와 단위벡터 (0) | 2022.10.18 |
파트1-Chapter-01. 벡터 대수 (0) | 2022.09.08 |
댓글