Как узнать, является ли угол между двумя векторами внешним или внутренним?

Я знаю, как определить угол между двумя векторами, но он всегда дает мне внутренний угол, но я хочу, чтобы он всегда давал мне угол в направлении против часовой стрелки, даже если он больше 180.
Я использую C ++, но это не очень важно, потому что мне нужно получить теорию.

Это то, что я использую сейчас формула

2

Решение

Вы ищете atan2(y,x) функция (http://en.wikipedia.org/wiki/Atan2). Если вы дадите ему две составляющие 2D вектора, он даст вам угол вектора от оси x в направлении против часовой стрелки. Чтобы решить вашу конкретную проблему, попробуйте:

atan2(v_y, v_x) - atan2(u_y, u_x)

Затем вы можете добавить или вычесть 360 градусов, если ответ выходит за пределы желаемого угла.

10

Другие решения

Других решений пока нет …