Jurii
Высший разум
(176275)
13 лет назад
Нарисуй на листочке бумаги:
- оси координат
- 2 прямоугольника, которые пересекаются (2-ой левее, правее, выше, ниже)
- прямоугольник, а в нём второй
- прямоугольники, которые не пересекаются
- обозначь на прямоугольниках точки (левую верхнюю и правую нижнюю)
И выведи нужные тебе условия!
+ случай когда координаты совпадают.
=Serge=
Просветленный
(36122)
13 лет назад
Элементарно. Вот фрагмент условий. Так как координаты уже упорядочены по возрастанию.
If b.x1 >a.x1 then
If b.x1>a.x2 then writeln("Не входит");
(иначе проверяем по y).
АлександрГуру (3871)
13 лет назад
У меня вышло вот так (при условии, что ширина и высота прямоугольника b не меньше чем i):
if ((i.x1>=b.x1) and (i.x1<=b.x2) and (i.y1>=b.y1) and (i.y1<=b.y2))
or ((i.x2>=b.x1) and (i.x2<=b.x2) and (i.y2>=b.y1) and (i.y2<=b.y2))
or ((i.x2>=b.x1) and (i.x2<=b.x2) and (i.y1>=b.y1) and (i.y1<=b.y2))
or ((i.x1>=b.x1) and (i.x1<=b.x2) and (i.y2>=b.y1) and (i.y2<=b.y2)) then