Nomalrize 단위 벡터와 내적의 의미
2011. 5. 4. 14:35ㆍC# And Unity
1. 단위 벡터
길이가 1인 벡터를 말한다. 주로 벡터의 방향을 나타내기 위해 사용합니다.
(x,y,z) 벡터의 단위 벡터는
length = sqrt(x^2+ y^2+ z^2)
Normalrize Vector = (x/length, y/length, z/length) 가 됩니다.
위의 x,y,z 값들은 1이하로 결과값이 나올겁니다. 즉 전체 길이에 대한 현재 축의 길이를 말하는 거겠죠.
좌표계를 그려놓고 삼각함수를 생각한다면 이해가 갈것입니다.
2d 에서는 x^2 + y^2 = z^2 이죠. 이걸 이해한다면 위 공식이 어떻게 나왔는지 감이 올겁니다.
vec.Normalize() : 현재 벡터값을 단위벡터 값으로 변경해 버립니다.
Vector3 vec2 = vec.normalized(); : 기존 값은 유지한채로 단위벡터 를 리턴한다.
2. 벡터의 내적(Dot Product)
두벡터 사이의 길이비를 나타낸다.
v1 = { a1,a2,a3 }, v2 = {b1,b2,b3}
v1*v2 = {a1*b1, a2*b2, a3*b3} => |v2|* |v1|cos@
: 교환 법칙 성립한다.
loat dot = Vector3.Dot ( v1, v2 );
float angle = Math.Acos ( dot );
=>두 벡터가 이루는 각을 알지 못하고 각 벡터 좌표값을 알고 있을때, 이 Dot한 값이 양수면
그 각은 0~90, 270 ~360도 사이에 있다.
이 dot 값은 Cos@ 곡선을 따른다.
예> 나의 위치(A), 상대방 위치(B)를 알고 있다면, 이 AB의 내적을 구한다.
이값이 양수면 상대방은 전면에 있고 ( 0-90도, 270-360도)
음수면 상대방은 후면에 있다. (90-270)
길이가 1인 벡터를 말한다. 주로 벡터의 방향을 나타내기 위해 사용합니다.
(x,y,z) 벡터의 단위 벡터는
length = sqrt(x^2+ y^2+ z^2)
Normalrize Vector = (x/length, y/length, z/length) 가 됩니다.
위의 x,y,z 값들은 1이하로 결과값이 나올겁니다. 즉 전체 길이에 대한 현재 축의 길이를 말하는 거겠죠.
좌표계를 그려놓고 삼각함수를 생각한다면 이해가 갈것입니다.
2d 에서는 x^2 + y^2 = z^2 이죠. 이걸 이해한다면 위 공식이 어떻게 나왔는지 감이 올겁니다.
vec.Normalize() : 현재 벡터값을 단위벡터 값으로 변경해 버립니다.
Vector3 vec2 = vec.normalized(); : 기존 값은 유지한채로 단위벡터 를 리턴한다.
2. 벡터의 내적(Dot Product)
두벡터 사이의 길이비를 나타낸다.
v1 = { a1,a2,a3 }, v2 = {b1,b2,b3}
v1*v2 = {a1*b1, a2*b2, a3*b3} => |v2|* |v1|cos@
: 교환 법칙 성립한다.
loat dot = Vector3.Dot ( v1, v2 );
float angle = Math.Acos ( dot );
=>두 벡터가 이루는 각을 알지 못하고 각 벡터 좌표값을 알고 있을때, 이 Dot한 값이 양수면
그 각은 0~90, 270 ~360도 사이에 있다.
이 dot 값은 Cos@ 곡선을 따른다.
예> 나의 위치(A), 상대방 위치(B)를 알고 있다면, 이 AB의 내적을 구한다.
이값이 양수면 상대방은 전면에 있고 ( 0-90도, 270-360도)
음수면 상대방은 후면에 있다. (90-270)