벡터 (Vector)
- 벡터를 사용해서 정적인 위치가 아닌 동적인 모습을 기술할 수 있습니다.
- 벡터는 크기와 방향성을 가진 것으로 단순히 '크기'만을 가진 스칼라와는 대조됩니다.
스칼라 (Scalar)
- 흔히 생각할 수 있는 일반적인 수입니다.
- 2km 라는 단순한 값이 있을 때 이 값은 어디에서 어느 방향으로 2km인지에 대한 정보는 가지고 있지 않습니다.
변위 (Displacement)
- 마지막 위치 - 시작위치의 값.
* 아무리 많이 움직였다고 하더라도 마지막 위치 - 시작 위치이기 때문에 실제로 이동한 거리보다는 짧을 수 있습니다.
* 부호가 있습니다. ( 방향 판별 )
벡터 기본 연산
- 다음과 같은 A 와 B 벡터가 있다고 가정합니다.
벡터의 합
- A + B 의 벡터를 더하는 경우 둘 중 하나의 시작점이 나머지 하나의 끝점과 일치하도록 해주면 됩니다.
- A + B = C 를 나타내면 다음과 같습니다. ( 임의의 벡터 B 를 움직여 보겠습니다. )
- A [a,b] B [c,d] 라 가정했을 때 벡터 C 는 다음과 같이 구할 수 있습니다.
A + B = C 일때 벡터 C [ a + c , b + d ]
* 3차원 벡터 또한 동일하게 연산됩니다. A [ a , b, c ] 이고 B [ d , e , f ] 일때
A + B = C 의 C [ a + d , b + e, c + f ]
* 벡터의 합 연산은 교환법칙이 성립하고 따라서 A+B 와 B+A 의 값은 동일합니다.
벡터의 차
- A - B 의 벡터의 경우엔 벡터의 합과 같이 둘 중 하나의 시작점이 나머지 하나의 끝점과 일치하도록 해주면 되는건 동일하지만, - 가 붙은 벡터 B 를 반전 시켜줘야 합니다. ( 각 성분의 부호를 바꾸어주면 됩니다. )
- 다음과 같이 나타낼 수 있습니다.
- A [a,b] B [c,d] 라 가정했을 때 벡터 C 는 다음과 같이 구할 수 있습니다.
A - B = C 일때 벡터 C [ a - c , b - d ]
* 마찬가지로 3차원 벡터 또한 동일하게 연산됩니다. A [ a , b, c ] 이고 B [ d , e , f ] 일때
A - B = C 의 C [ a - d , b - e, c - f ]
벡터와 스칼라 곱
- 벡터 A 와 스칼라 값 c를 곱했을 때는 어떻게 될까요?
- 간단합니다. 스칼라 값 c 에 따라서 벡터 A 의 크기가 커지거나 작아지거나 그대로이거나 할 수 있습니다.
* 벡터 A 와 스칼라 2 를 곱하면 다음과 같이 나타낼 수 있습니다.
2A = A * 2
* 벡터 A [ a, b ]라 가정했을 때 스칼라 값 c 와의 결과는 다음과 같이 구할 수 있습니다.
cA = [ a * c , b * c ]
* 3차원 벡터 또한 동일합니다. A [ a , b , c ] 일때 스칼라 값 d 와의 결과
dA = [ a * d , b * d , c * d ]
벡터의 크기(길이) ( Vector Length )
- 벡터 A [ x , y , z ]의 길이는 다음과 같이 구할 수 있습니다.
벡터의 정규화 ( Vector Normalization )
- 벡터의 정규화란 벡터의 크기를 1로 만들어 주는 것입니다. ( 크기가 1인 벡터를 단위 벡터 Unit Vector 라고 합니다. )
- 따라서 A 의 벡터를 정규화한다는 것은 벡터 A 의 크기로 각 성분들을 나누어 주는 것입니다.
[ x / |A| , y / |A| , z /|A| ]
벡터의 내적 ( Vector Dot product )
- 두 벡터의 내적은 항상 스칼라 값이 나옵니다.
- 벡터 A [ x , y , z ] B [ x2 , y2 , z2 ] 의 내적의 값은 다음과 같이 구할 수 있습니다.
- 각 성분끼리 곱하고 더한 결과를 취합니다.
* 따라서 같은 차원의 벡터만을 내적할 수 있습니다.
= 0 이면 ( A 와 B 는 직교한다. )
< 0 ( 즉 음수이면 ) >
> 0 ( 즉 양수이면 ) <
두 벡터 사이의 각 또한 알아낼 수 있습니다.
벡터의 외적 ( Vector Cross product )
- 두 벡터를 곱하는데 결과로 벡터를 획득합니다.
- 벡터 A [ x , y , z ] B [ x2, y2 ,z2 ] 의 외적 벡터 C 는 다음과 같이 구할 수 있습니다.
A x B = [ (y * z2 - z * y2 ) , (z * x2 - x * z2) , ( x * y2 - y * x2 ) ]
* 결과로 얻어지는 벡터 C 는 A 와 B 벡터의 수직인 직교 벡터입니다.
* 외적은 교환법칙이 성립되지 않습니다. A X B != B X A, 단. A X B = - ( B X A )
주로 외적은 법선 벡터를 획득해 라이팅에 활용됩니다.