Я знаю, как определить угол между двумя векторами, но он всегда дает мне внутренний угол, но я хочу, чтобы он всегда давал мне угол в направлении против часовой стрелки, даже если он больше 180.
Я использую C ++, но это не очень важно, потому что мне нужно получить теорию.
Это то, что я использую сейчас
Вы ищете atan2(y,x)
функция (http://en.wikipedia.org/wiki/Atan2). Если вы дадите ему две составляющие 2D вектора, он даст вам угол вектора от оси x в направлении против часовой стрелки. Чтобы решить вашу конкретную проблему, попробуйте:
atan2(v_y, v_x) - atan2(u_y, u_x)
Затем вы можете добавить или вычесть 360 градусов, если ответ выходит за пределы желаемого угла.
Других решений пока нет …