Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Задача 2. Рассмотрим два прямоугольника на координатной плоскости со сторонами параллельными осям координат



Рассмотрим два прямоугольника на координатной плоскости со сторонами параллельными осям координат. Требуется найти их пересечение или сообщить о его отсутствии. Как и в прошлой задаче, и точку, и отрезок будем считать частными случаями прямоугольника.

Исходные прямоугольники задаются координатами своей диагонали X1, Y1, X2, Y2, причем известно, что X1 < X2, а Y1 < Y2.

Решение.

Согласно методике последовательной детализации алгоритма, разобьем эту задачу на подзадачи. Заметим, что прямоугольник в пересечении существует, только если пересекаются проекции исходных прямоугольников по оси X и то же самое можно утверждать о проекциях на ось Y. Таким образом, удалось свести задачу к предыдущей. Необходимо оформить ранее написанный алгоритм «отрезки» в виде вспомогательного алгоритма с четырьмя параметрами. Аргументов должно быть именно четыре, поскольку ранее водилось четыре величины A, B, C, D.

алг отрезки (арг A, B, C, D, рез L, R)

Нач

L:= максимум (A, C)

R:= минимум (B, D)

Кон

Как правило, вспомогательные алгоритмы проектируются так, что они ничего не вводят и ничего не выводят. Все необходимые данные они получают через параметры, а результаты возвращают в вызывающий алгоритм.

Решение задачи о прямоугольниках.

алг прямоугольники

Нач

ввести AX1, AY1, AX2, AY2

ввести BX1, BY1, BX2, BY2

отрезки (AX1, AX2,BX1, BX2, A, B)

если A > B

товывести “Прямоугольники не пересекаются”

Иначе

отрезки (AY1, AY2,BY1, BY2, C, D)

если C > D

товывести “Прямоугольники не пересекаются”

иначевывести A, C, B, D

Все

Все

Кон





Дата публикования: 2014-11-03; Прочитано: 536 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...