의 일반적인 방향을 .. 을 결정하지만, 어떻게 든이 사소한 문제를 해결 내 머리를 정리하고 수 없습니다.내가 오래 전에 답을 발견해야 같은 느낌 내가 당신을 위해 오히려 간단한 질문이 2 차원 벡터
벡터 v = (X, Y)에, 나는 그것의 '일반'방향을 알고 싶습니다 감안할. 즉 '아래', '왼쪽'또는 '오른쪽'
벡터의 일반 오리엔테이션은 어느 '위로'는 '위로'는 벡터의 방향은 45과 135도 사이 인 경우. '왼쪽'은 135도에서 225도 사이입니다. '아래'는 225도에서 315도 사이입니다. '오른쪽'은 315도에서 45도 사이입니다.
정말 각도가 정확히 45도, 135도, 225도 또는 315도 인 경우에 상관하지 않습니다.
캐치는 삼각법을 사용하고 싶지 않습니다. 나는 간단한 해결책이 있다는 것을 확신한다.
솔루션이 전체 서클을 8 개로 나눌 수 있다고 생각합니다. 여기 내가 지금까지 가지고있는 것이있다.
if(x > 0 && y > x)
return Up
if(x > 0 && y > 0 && y < x)
return Right
... etc ...
기본적으로 해결책을 찾을 수 있습니다. 나는이 문제에 대한 당신 자신의 접근에 더 관심이있다.
감사합니다.
편집 : 사용 된 벡터는 정규화되지 않습니다. 한 쌍의 점을 사용하여 벡터를 나타낼 수 있습니다. 간단히 벡터의 원점은 (0,0)입니다.
좋아, 나는 혼란 스러울 지 모르지만 어떻게 벡터를 x와 y로 표현하고, x와 y를 둘 다 위치가있는 것처럼 비교합니까? 하나는 방향으로, 다른 하나는 크기로해서는 안됩니까? –
@Michael : 벡터를 나타내는 데는 두 가지 방법이 있습니다. 방향과 크기 (직각 삼각형의 빗변과 같은)를 가질 수 있습니다. 다른 방법은 오른쪽 삼각형의 다리와 같은 x 및 y 구성 요소를 사용하는 것입니다. OP가 삼각법을 피하려고 시도하기 때문에 x/y 접근법이 더 적합 해 보입니다. –
@Micheal : http://en.wikipedia.org/wiki/Unit_vector 참조 – Randolpho