There is a very handy set of 2d geometry utilities here.Come calcolare sia l'angolo positivo che quello negativo tra due linee?
L'angolo tra le linee presenta tuttavia un problema. Il risultato è sempre positivo. Devo rilevare sia gli angoli positivi che quelli negativi, quindi se una linea è 15 gradi "sopra" o "sotto" l'altra linea, la forma ovviamente sembra diversa.
La configurazione che ho è che una linea rimane stazionaria, mentre l'altra linea ruota, e ho bisogno di capire in che direzione sta ruotando, confrontandola con la linea stazionaria.
MODIFICA: in risposta al commento di swestrup di seguito, la situazione è in realtà che ho una singola riga e registro la sua posizione di partenza. La linea quindi ruota dalla sua posizione di partenza, e ho bisogno di calcolare l'angolo dalla sua posizione iniziale alla posizione corrente. E. se è ruotato in senso orario, è una rotazione positiva; se in senso antiorario, quindi negativo. (O viceversa.)
Come migliorare l'algoritmo in modo che restituisca l'angolo come positivo o negativo a seconda di come vengono posizionate le linee?
Dato due segmenti di linea che si intersecano in modo arbitrario, è difficile determinare quale sia "sopra" l'altro e persino quale angolo misurare, poiché di solito formano una forma "X". Stai forse usando sempre due linee con un punto di partenza comune? Ciò lo rende molto più semplice. – swestrup
Spiacente, ho chiarito. In realtà sto parlando di una singola linea e della sua rotazione rispetto alla sua posizione di partenza. – Jaanus
Quale intervallo desideri? Vuoi il pieno -pi per pi o sei felice con solo -pi/2 per pi/2, ti interessa la direzione delle linee o no? – Troubadour