Здесь есть очень удобный набор двухмерных утилит геометрии.
У угла BetweenLines есть проблема. Результат всегда положительный. Мне нужно определить как положительный, так и отрицательный углы, поэтому, если одна строка находится на 15 градусов выше или ниже, другая форма выглядит явно.
Конфигурация, которую я имею, состоит в том, что одна строка остается неподвижной, а другая линия вращается, и мне нужно понять, в каком направлении она вращается, сравнивая ее со стационарной линией.
EDIT: в ответ на комментарий swestrup ниже ситуация на самом деле состоит в том, что у меня есть одна строка, и я записываю ее начальную позицию. Затем линия поворачивается из своего начального положения, и мне нужно рассчитать угол от его исходного положения до текущего положения. Например, если он вращается по часовой стрелке, это положительное вращение; если против часовой стрелки, то отрицательный. (Или наоборот).
Как улучшить алгоритм, чтобы он возвращал угол как положительный, так и отрицательный в зависимости от того, как расположены линии?