acos
은 0과 pi 사이의 값을 제공한다고 가정 해 보겠습니다.
s
에서 t
까지의 벡터를 u
이라고합시다. 이미 계산 했으므로
acos((v . u)/(|v| * |u|))
의 각도는 alpha
입니다. 이제 사실 v
은 u
일 수 있고 alpha
은 다른 방향으로 회전 할 수 있습니다.
아마도 2D로 필요하지만 아마 3D로 진행할 것입니다.
회전은 v
및 u
에 수직 인 벡터 주위에 있어야합니다.
u x v
는 다음의 예제를 보자 :이 벡터는 물론 십자가 두 가지의 제품이 경우
/v
/
/\ alpha
/)
------------ u
, u x v
은 모니터의 외부를 향한 벡터를 제공합니다. 동시에 alpha
배급은 반 시계 방향 일 수 있으며 u
에 평행하게 v
이되어야 함을 알 수 있습니다. 이다
는 3D로, 당신은 w = u x v
을 계산해야하고 항상 시계 반대 방향으로 w
에 대한 alpha
에 의해 v
을 돌립니다. 또는 -w
(즉 v x u
)을 기준으로 v
을 alpha
으로 시계 방향으로 돌릴 수 있습니다.
2D에서는 약 z
번으로 회전하고 어느 방향인지 알 수 없다고 가정합니다.w
가
- 후,
v
는 반 시계 방향으로 회전한다 (영 될 X 및 Y)의 양의 Z가있는 경우
- 계산
w = u x v
- : 당신은 상기와 동일한 방법을 적용 할 수있다.
- else
v
은 시계 방향으로 회전해야합니다. moowiz2020가 말한대로
http://stackoverflow.com/questions/2150050/finding-signed-angle-between-vectors – moowiz2020
, 이것은 정확한 중복입니다. – tom10
오, 고마워요. 그걸 찾다가 찾지 못했습니다. 에스 – Skeen