벡터

2012-05-08 3 views
0

가능한 중복 사이의 각도 찾기 : 나는 약간의 수학 문제에 대한 도움이 필요 해요
Finding Signed Angle Between Vectors벡터

합니다.

그래서 저는 방위를 나타내는 벡터 v와 두 점 s와 t를 얻었습니다. 제가해야할 일은, 두 벡터에 의해 정의 된 벡터와 평행하게 만들기 위해 벡터 벡터에 적용 할 회전을 찾는 것입니다.

현재 나는 이것을 약간 달성하고 있습니다. 즉, 각도를 찾을 수 있습니다. 적용 할 방법이 아닙니다 (시계 방향 또는 시계 반대 방향).

현재 벡터의 내적에 acos를 계산하고 있습니다.

모든 입력을 환영합니다.

+1

http://stackoverflow.com/questions/2150050/finding-signed-angle-between-vectors – moowiz2020

+0

, 이것은 정확한 중복입니다. – tom10

+0

오, 고마워요. 그걸 찾다가 찾지 못했습니다. 에스 – Skeen

답변

3

acos은 0과 pi 사이의 값을 제공한다고 가정 해 보겠습니다.

s에서 t까지의 벡터를 u이라고합시다. 이미 계산 했으므로

acos((v . u)/(|v| * |u|)) 

의 각도는 alpha입니다. 이제 사실 vu 일 수 있고 alpha은 다른 방향으로 회전 할 수 있습니다.

아마도 2D로 필요하지만 아마 3D로 진행할 것입니다.

회전은 vu에 수직 인 벡터 주위에 있어야합니다.

u x v는 다음의 예제를 보자 :이 벡터는 물론 십자가 두 가지의 제품이 경우

/v 
/
/\ alpha 
/) 
------------ u 

, u x v은 모니터의 외부를 향한 벡터를 제공합니다. 동시에 alpha 배급은 반 시계 방향 일 수 있으며 u에 평행하게 v이되어야 함을 알 수 있습니다. 이다

는 3D로, 당신은 w = u x v을 계산해야하고 항상 시계 반대 방향으로 w에 대한 alpha에 의해 v을 돌립니다. 또는 -w (즉 v x u)을 기준으로 valpha으로 시계 방향으로 돌릴 수 있습니다.

2D에서는 약 z 번으로 회전하고 어느 방향인지 알 수 없다고 가정합니다.w

  • 후, v는 반 시계 방향으로 회전한다 (영 될 X 및 Y)의 양의 Z가있는 경우

    • 계산 w = u x v
    • : 당신은 상기와 동일한 방법을 적용 할 수있다.
    • else v은 시계 방향으로 회전해야합니다. moowiz2020가 말한대로