Вопрос № 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 Комментарий оценки: Большое спасибо!
Вы имеете возможность оценить этот выпуск рассылки. Нам очень важно Ваше мнение!
* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.
Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!
Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.
Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.