There is a very handy set of 2d geometry utilities here.¿Cómo se calcula el ángulo positivo y el negativo entre dos líneas?
El angleBetweenLines tiene un problema, sin embargo. El resultado es siempre positivo. Necesito detectar ángulos positivos y negativos, así que si una línea está 15 grados "arriba" o "debajo" de la otra línea, la forma obviamente se ve diferente.
La configuración que tengo es que una línea permanece estacionaria, mientras que la otra línea gira, y necesito entender en qué dirección está girando, al compararla con la línea estacionaria.
EDITAR: en respuesta al comentario de Swestrup a continuación, la situación es que tengo una sola línea, y grabo su posición inicial. La línea luego gira desde su posición inicial, y necesito calcular el ángulo desde su posición inicial hasta la posición actual. Por ejemplo, si ha girado en el sentido de las agujas del reloj, es una rotación positiva; si es en sentido antihorario, entonces negativo. (O viceversa).
¿Cómo mejorar el algoritmo para que devuelva el ángulo como positivo o negativo dependiendo de cómo se colocan las líneas?
Dados dos segmentos de línea que se intersectan arbitrariamente, es difícil determinar cuál está 'por encima' del otro e incluso qué ángulo medir, porque típicamente forman una 'X'. ¿Estás utilizando quizás dos líneas con un punto de partida común? Eso lo hace mucho más directo. – swestrup
Lo siento, lo aclaré. De hecho, estoy hablando de una sola línea y su rotación relativa a su posición inicial. – Jaanus
¿Qué rango quieres? ¿Desea obtener el pi completo o está satisfecho con solo -pi/2 a pi/2, es decir, si le importa la dirección de las líneas o no? – Troubadour