Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2012, 07:50   #1
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию Как вычислить пересечение двух прямоугольников?

Как вычислить пересечение двух прямоугольников? Подскажите!
"Пересекаюся ли".
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 27.11.2012, 08:04   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Нарисуйте на бумаге два комплекта прямоугольников - пересекающиеся и непересекающиеся, пометьте вершины подходящими обозначениями координат Х и У - сразу станет наглядно что должно быть больше а что меньше и в каких случаях.
waleri вне форума Ответить с цитированием
Старый 27.11.2012, 08:12   #3
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

Я бы не спрашивал, если бы мне было понятно! Вот честно!
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 27.11.2012, 11:08   #4
Blind Guard
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 139
По умолчанию

Цитата:
Сообщение от three_cats Посмотреть сообщение
Я бы не спрашивал, если бы мне было понятно! Вот честно!
Вам же не сказали "нарисуйте на бумажке и взглядом определите пересекаются ли".
Вам посоветовали подготовить теорию для вашей задачи.
Blind Guard вне форума Ответить с цитированием
Старый 27.11.2012, 11:29   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Итак, если вам не понятно, идете в школу на урок математики, где узнаете, как определить точку пересечения двух прямых (отрезков)...
Теперь у вас есть 4 пары отрезков, применяете п. 1 и все.
p51x вне форума Ответить с цитированием
Старый 27.11.2012, 11:42   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Как вычислить пересечение двух прямоугольников? Подскажите!
*с прищуром*
А не в градусах ли долготы и широты у Вас прямоугольники? Тогда задача чуть интересней, чем Вам кажется.

А так, пусть прямоугольники имеют характеристики left, top, right, bottom. Тогда:
Код:
bool Intersects(Rectangle r1, Rectangle r2){
  if(r1.left > r2.right || r1.right < r2.left || r1.top < r2.bottom || r1.bottom > r2.top) return false;
  return true;
}
Abstraction вне форума Ответить с цитированием
Старый 27.11.2012, 13:27   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

а если прямоугольник "наклонен", он перестает быть прямоугольником?
p51x вне форума Ответить с цитированием
Старый 27.11.2012, 14:11   #8
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

А. Ну да. Инерция мышления.
Тогда выражение получается заме-етно менее красивым. Пусть у нас прямоугольник задан как множество точек, для которых C1<=ax+by<=C2 и C3<=bx-ay<=C4. Тогда можно построить для второго прямоугольника объемлющий прямоугольник со сторонами, параллельными сторонам первого; пересечение таких прямоугольников проверяется аналогично коду выше. Прямоугольники пересекаются тогда и только тогда, когда пересекаются обе пары из одного прямоугольника и объемлющего для второго. Вроде бы.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пересечение двух дуг kartorgaph Помощь студентам 2 09.10.2011 13:58
Замена двух прямоугольников Mehanizator Помощь студентам 0 27.08.2011 19:02
найти пересечение двух прямоугольников заданных координатами двух углов Этотак Помощь студентам 0 11.05.2011 23:55
Пересечение прямоугольников! (Basic) azalivin Помощь студентам 3 14.03.2011 22:13
вычислить определенный интеграл методом прямоугольников ronn Помощь студентам 3 27.05.2009 19:44