알고리즘
2009/08/05 10:43
벡터에 대한 사소한 것들
내적(dot product)
A·B = |A||B|cosθ (A벡터의 크기 * 벡터 B의 A방향 성분)
풀이
= A B cos(θa - θb)
= A B (cosθa*cosθb + sinθa*sinθb)
= A cosθa*B cosθb + A sinθa*B sinθb
= Ax*Bx + Ay*By
= A B cos(θa - θb)
= A B (cosθa*cosθb + sinθa*sinθb)
= A cosθa*B cosθb + A sinθa*B sinθb
= Ax*Bx + Ay*By
A·B = B·A
A·(B+C) = A·B + A·C
(scalarA)·B = scalar(A·B)
단위벡터(unit vector)
unitA.x = A.x / |A|
unitA.y = A.y / |A|
A = |A|unitA 단위 벡터에 벡터 길이를 더하면 그 벡터가 나옴.
unitA = A / |A|
투영벡터(projection vector)
벡터 A를 벡터 B에 투영시킨 벡터 Proj
Proj = |Proj|unitProj
|Proj| = |A|cosθ = |A||B|cosθ /|B| = A·B/|B|
unitProj = B / |B|
Proj = (A·B/|B|) * (B / |B|) = (A·B * B) /(|B|* |B|) = (A·B / B·B) * B
Proj.x = (A·B/ B·B) * B.x;
Proj.y = (A·B/ B·B) * B.y;
A·(B+C) = A·B + A·C
(scalarA)·B = scalar(A·B)
단위벡터(unit vector)
unitA.x = A.x / |A|
unitA.y = A.y / |A|
A = |A|unitA 단위 벡터에 벡터 길이를 더하면 그 벡터가 나옴.
unitA = A / |A|
투영벡터(projection vector)
벡터 A를 벡터 B에 투영시킨 벡터 Proj
Proj = |Proj|unitProj
|Proj| = |A|cosθ = |A||B|cosθ /|B| = A·B/|B|
unitProj = B / |B|
Proj = (A·B/|B|) * (B / |B|) = (A·B * B) /(|B|* |B|) = (A·B / B·B) * B
Proj.x = (A·B/ B·B) * B.x;
Proj.y = (A·B/ B·B) * B.y;
perp product(Hill, 1994)
두 점(P0, P1)를 지나는 백터 방정식을 P(s) = P0 + s(P1 - P0) = P0 + su(s는 실수, u는 단위벡터)로 정의하자.
평행한 두 벡터 u, v 에대해 u = Cv 가 성립된다.(C는 실수)
평행한 두 벡터 u, v 에대해 u = Cv 가 성립된다.(C는 실수)
같은 의미로 u/v 값은 항상 같은 값을 유지하는데 u(1)/v(1) = u(k) / v(k) 으로 표현할 수 있다.
u(1)v(k) - u(k)v(1) = 0 으로 수식정리를 할 수 있다.
이때 u=(u1, u2) 이고 v=(v1, v2)에 대해 u1v2 - u2v1 = 0 임을 perp product 라 함.
기호로 u⊥·v = 0 , (u⊥ = (-u2, u1), perp operator)
말로 벡터 u의 직교벡터와 벡터 v 의 내적은 0 이다~ 뭐 이런식.?
벡터의 교차(vector intersection)
평행하지 않은 두 벡터는 특정 포인트에서 만난다.
벡터의 교차(vector intersection)
평행하지 않은 두 벡터는 특정 포인트에서 만난다.
백터 위에 있는 점 P0가 벡터Q(t)에도 존재한다고 가정하자. 그렇다면 그 특정 점 t0에 대해
P0 = Q(t0) = Q0 + t0v 로 표현할 수 있다. 만약 w = P0 - Q0 이라면, w = t0v
이는 w(1)v(k) - w(k)v(1) = 0 (k는 실수) 이다.
perp production w⊥·v = 0 으로 정리된다.
한편, 교차점을 구하기 위해 벡터 방정식 P(s) - Q0 = w + su (단, w = P0 - Q0) 를 사용해보자.
교차점에서 벡터 P(s)-Q0 는 v⊥와 직교한다. 즉,
v⊥·(w+su) = 0
v⊥·w + v⊥·su = 0
하나 벡터의 길이가 무한하지 않은 경우, 비율 si 는 0<= si <= 1
두 벡터의 길이가 무한하지 않은 경우, P, Q 모두에 대해서 0<= si <= 1 구간에 있어야 교차하게 된다.
si가 1이면 벡터의 끝에서 만나게 되며,
0보다 작으면 이전에 만났을 경우가 될 수 있다.
1보다 크면 앞으로 만날 가능성이 있다.
refer to :


틀린 부분이 있으면 누구든 지적해주세요~
오빠 지나치게 똑똑해보여서 오빠랑 매치가 안돼 ㅋㅋ
아놔~~ㅋ