У меня две строки: Line1 и Line2. Каждая строка определяется двумя точками (P1L1(x1, y1), P2L1(x2, y2)
и P1L1(x1, y1), P2L3(x2, y3))
. Я хочу знать внутренний угол, определяемый этими двумя строками.
Для этого я вычисляю угол каждой линии с абсциссой:
double theta1 = atan(m1) * (180.0 / PI);
double theta2 = atan(m2) * (180.0 / PI);
После того, как узнать угол, вычислим следующее:
double angle = abs(theta2 - theta1);
Проблема или сомнения в том, что у меня есть: иногда я получаю правильный угол, но иногда я получаю дополнительный угол (для меня внешний). Как узнать, когда вычесть 180º
, чтобы узнать внутренний угол? Есть ли какой-нибудь алгоритм? Потому что я пробовал некоторые методы: dot product,
следующая формула:
result = (m1 - m2) / (1.0 + (m1 * m2));
Но всегда у меня такая же проблема; Я никогда не знал, когда у меня есть внешний угол или внутренний угол!