2013년 6월 12일 수요일

Vector 기본

항상 계산하던 벡터 개념이지만 늘 다시보려면 책을 보게된다
언제쯤 안까먹을지 -_-

1. Vector 란, 크기와 방향을 나타내는 수학적도구.
Vector3 v = [Vx,Vy,Vz] 로 구성된다.

2, Vector 의 성분 계산
V = B - A
V = (Bx, By, Bz) - ( Ax, Ay, Az)
V = (Bx - Ax), (By - Ay), (Bz - Az)
ex) Vector3 V = new Vector(Bx-Ax, By-Ay, Bz-Az);

3. Vector의 크기
벡터의 크기는 벡터의 화살표 길이다.
피타고리스 정리에 의해 "X값의 제곱 + Y값을 제곱 = (벡터의 크기)의 제곱"  공식
ex) float length = sqrt(x*x + y*y + z*z );

4. 단위벡터
방향만을 나타내는 벡터이며, 크기는 1이다
기존 벡터를 단위벡터로 만드는것을 정규화(Normalization)라고 한다.
기존의 벡터를 자신의 크기로 나누어주면 된다.
ex) Vector3 N = new Vector(x/length, y/length, z/length);

5, 벡터의 내적(각도) - 보통은 각도를 알기위해 쓰죠-
벡터의 곱셈은 내적과 외적으로 정의되며, 내적값은 스칼라값이다.
벡터A와 벡터B의 내적을 구하면 두 벡터가 이루는 각도가 나온다.

크기가 같은 두 벡터라 할지라도 두벡터사이에 각도에 따라 내적(크기)는 달라진다.

각 벡터의 성분간의 곱을 모두 더하면 벡터 A와 B의 내적이 나온다
ex) float dot = Ax*Bx + Ay*By + Az*Bz;

같은 벡터의 내적은 길이의 제곱이다.
ex) A.dot(A) == A.length * A.length


내적이 0이면 두벡터는 서로 직교한다 ( 법선벡터, Normal Vector 노멀벡터)
내적이 양수이면 두 벡터의 사잇각은 0 ~ 180도 사이다.
내적이 음수면 두 벡터의 사잇각은 180을 넘는다 ( 뒷면 판단시 사용 )

http://en.wikipedia.org/wiki/Dot_product

6. 벡터의 외적
두 벡터에 모두 수직한 벡터 ( 노멀벡터)를 값으로 가진다
AXB로 표현되는데, 교환법칙이 성립하지 않으므로, 순서에 주의

AXB = [A2B3 - A3B2, A3B1 - A1B3, A1B2 - A2B1]
ex) Vector3 Cross = new Vector( a.y*b.z - a.z*b.y, a.z*b.x - a.x*bz, a.x*b.y - a.y*bx )

http://en.wikipedia.org/wiki/Cross_product


댓글 없음:

댓글 쓰기