![]() |
|
![]() ![]() ![]() |
|
Kostt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 8.1.2006 Где: Томск Репутация: нет Всего: 3 |
Как быстро проверить, пересекаются ли два плоских прямоугольника? Или по крайней мере, быстро установить факт того, что они не пересекаются (в рамках моей задачи, они пересекаться будут редко)
|
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
стороны параллельны координатным осям или могут быть направлены произвольно?
-------------------- qqq |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
Если они пересекаются, значит пересекаются их стороны. Смотри в сторону пересечения отрезков. надо будет сделать 15 попарных проверок (максимум). Вообще 16 должно быть проверок, но если подумать, то одним отрезком они точно пересекаться не могут (то есть, я так понимаю, у прямоугольников должна быть общая площадь)
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Kostt |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 8.1.2006 Где: Томск Репутация: нет Всего: 3 |
Стороны параллельны осям координат. Попарные проверки слишком долго, наверняка есть способ проще
|
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
Если сторону параллельны осям, то вообще ничего сложного не вижу.
Пусть прямоугольники заданы как коорд-ты противоположных углов - левый нижний и правый верхний: Прям1=(x11,y11,x12,y12), Прям2=(x21,y21,x22,y22) Тогда если x11<x22 и x12>x21 и y11<y22 и y12>y21, то пересечение есть -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
paladin80 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 7.6.2008 Репутация: нет Всего: нет |
ksili, спасибо большое за условия! Все работает.
Это сообщение отредактировал(а) paladin80 - 7.6.2008, 09:14 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |