Вопрос № 121386: Здравствуйте, уважаемые эксперты!!!
Помогите пожалуйста решить задачу, я делаю курсовую и меня поставило в тупик вот что: есть 4 точки (x1;y1), (x2;y2), (x3;y3), (x4;y4).
Нужно найти меньший из углов между прямыми, проходящими через точки ...
Вопрос № 121.386
Здравствуйте, уважаемые эксперты!!!
Помогите пожалуйста решить задачу, я делаю курсовую и меня поставило в тупик вот что: есть 4 точки (x1;y1), (x2;y2), (x3;y3), (x4;y4).
Нужно найти меньший из углов между прямыми, проходящими через точки (x1;y1), (x2;y2) и (x3;y3), (x4;y4) в градусах. Сделать это нужно как можно проще!(я про код)
Буду благодарен любой помощи!
Заранее спасибо.
Отвечает: Verena
Здравствуйте, Волк Василий Григорьевич!
Для решения такой задачи проще всего найти прямые в виде y = kx+b, где k, как известно, будет нам давать тангенс угла между прямой и осью ОХ. Найти нам, по сути, нужно только коэффициенты k, что легко можно сделать из системы:
y1 = k1*x1+b1 -> b1 = y1-k1*x1
y2 = k1*x2+b1 -> y2 = k1*x2+y1-k1*x1 -> k1 = (y2-y1)/(x2-x1)
Аналогично для второй прямой.
Тогда, вычислив коэффициенты k1 и k2 (для первой и второй прямой соответственно) мы сможем вычислить угол между ними по формуле arctg ((k2-k1)/(1+k1*k2))
Только следует рассмотреть крайние случаи: когда прямые перпендикулярны (в этом случае выражение в знаменателе арктангенса (1+k1*k2) будет равно 0) и когда одна из прямых соответствует формуле x = const (в этом случае x2=x1 и угол можно вычислить как 90-arctg(k), где k - коэффициент невырожденной прямой, почему так - легко можно увидеть на графике). Примерную реализацию этого алгоритма смотрите в приложении.
Удачи!
Приложение:
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 03.02.2008, 04:33 Оценка за ответ: 5 Комментарий оценки: Большое спасибо!