Форум программистов, компьютерный форум CyberForum.ru

С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.74
Kill100
 Аватар для Kill100
360 / 249 / 33
Регистрация: 11.12.2010
Сообщений: 1,069
Завершенные тесты: 1
11.12.2010, 04:27     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... #1
17)Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них и длины их сторон. Один прямоугольник назовём первым, другой вторым определить пересекаются ли эти прямоугольники.
C++
Собственно в универе дали такую задачу да же не знаю как её вобще решить просто тупо на бумаге не то что в c++загнать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2010, 04:27     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них...
Посмотрите здесь:

Даны натуральные числа a и b которые определяют стороны прямоугольника.На сколько квадратов, стороны которого...... C++
C++ Найти площадь прямоугольника, который принадлежит обеим осям координат
Определить координаты левого нижнего элемента и правого верхнего элемента в матрице C++
C++ Построить на экране рисунок одно подъездного дома, если известны координаты левого верхнего угла дома
C++ 19. Два прямоугольника заданы длинами сторон. Стороны прямоугольников параллельны. Определить, можно ли первый прямоугольник целиком разместить во вт
C++ Заполнить матрицу ЛП, от левого нижнего угла по диагонали: влево - вверх.
Заполнение матрицы с левого нижнего угла по диагонали (исправить программу) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,819
Завершенные тесты: 2
11.12.2010, 04:42     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... #2
x1, y1 - координата лево-нижнего угла 1-ого прямоугольника.
x2, y2 - 2-ого.
a1, b1 - длины сторон 1ого
a2, b2 - длины сторон 2ого

Вот условие пересечения:
x1<=x2<=x1+a1
y1<=y2<=y1+b1
Если неравенство верна, то пересекаются. Иначе - не пересекаются.

На достоверность не проверял.
Kill100
 Аватар для Kill100
360 / 249 / 33
Регистрация: 11.12.2010
Сообщений: 1,069
Завершенные тесты: 1
11.12.2010, 14:30  [ТС]     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... #3
Цитата Сообщение от Евгений М. Посмотреть сообщение
x1, y1 - координата лево-нижнего угла 1-ого прямоугольника.
x2, y2 - 2-ого.
a1, b1 - длины сторон 1ого
a2, b2 - длины сторон 2ого

Вот условие пересечения:
x1<=x2<=x1+a1
y1<=y2<=y1+b1
Если неравенство верна, то пересекаются. Иначе - не пересекаются.

На достоверность не проверял.
Спасибо как я понимаю это система???

C++
1
2
    if ((x1<=x2 && x2<=x1+a1)  && (y1<=y2 && y2<=y1+b1) ){cout<<"Прямоугольники пересекаются";}
    else{cout<<"Прямоугольники не пересекаются";};
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
11.12.2010, 17:03     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... #4
Цитата Сообщение от Евгений М. Посмотреть сообщение
x1, y1 - координата лево-нижнего угла 1-ого прямоугольника.
x2, y2 - 2-ого.
a1, b1 - длины сторон 1ого
a2, b2 - длины сторон 2ого

Вот условие пересечения:
x1<=x2<=x1+a1
y1<=y2<=y1+b1
Если неравенство верна, то пересекаются. Иначе - не пересекаются.

На достоверность не проверял.
Условие достаточное, но не необходимое.
Kill100
 Аватар для Kill100
360 / 249 / 33
Регистрация: 11.12.2010
Сообщений: 1,069
Завершенные тесты: 1
11.12.2010, 17:39  [ТС]     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... #5
Цитата Сообщение от Mr.X Посмотреть сообщение
Условие достаточное, но не необходимое.
то есть оно работает только в определенных случаях???
Плохо разбираюсь что такое достаточность и необходимость... Хоть что то по алгебре и геометрии такое было. (да и по мат анализу что то упоминалось..)
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
11.12.2010, 18:23     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... #6
Цитата Сообщение от Kill100 Посмотреть сообщение
то есть оно работает только в определенных случаях???
Плохо разбираюсь что такое достаточность и необходимость... Хоть что то по алгебре и геометрии такое было. (да и по мат анализу что то упоминалось..)
Это условие гласит, что если второй прямоугольник "заступит" своей левой нижней вершиной на "территорию" первого, то они пересекутся. Но он это может сделать и любой другой из своих вершин, и тоже пересечение будет.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,819
Завершенные тесты: 2
11.12.2010, 19:06     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... #7
Цитата Сообщение от Mr.X Посмотреть сообщение
Условие достаточное, но не необходимое.
Да, кстати. Я забыл, что нужно и другие вершины проверять нужно.
Kill100
 Аватар для Kill100
360 / 249 / 33
Регистрация: 11.12.2010
Сообщений: 1,069
Завершенные тесты: 1
11.12.2010, 19:20  [ТС]     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... #8
то есть еще надо будет к координатам прибавлять длину что бы получить другие оставшиеся 3 координаты каждого треугольника и проверять то же условие пересечения?
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
11.12.2010, 20:41     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... #9
Цитата Сообщение от Kill100 Посмотреть сообщение
то есть еще надо будет к координатам прибавлять длину что бы получить другие оставшиеся 3 координаты каждого треугольника и проверять то же условие пересечения?
Да я тут писал уже такое же, но для квадратов. Надо проверить расстояние между центрами.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2010, 22:36     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них...
Еще ссылки по теме:

Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) C++
Пройти по любому разрешенному пути игрового поля от верхнего левого угла до правого нижнего C++
Стороны, параллельные осям координат и диагонали C++
C++ Строка, обегающая весь экран от верхнего левого до нижнего правого угла по строкам слева направо
Заполнить матрицу от левого нижнего угла по диагонали: влево - вверх C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Напильнег
480 / 120 / 10
Регистрация: 30.09.2010
Сообщений: 473
11.12.2010, 22:36     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... #10
На самом деле все гораздо проще:

Код
если (max(x1, x2) < min(x1+a1, x2+a2)) и (max(y1, y2) < min(y1+b1, y2+b2)) то пересекаются
Yandex
Объявления
11.12.2010, 22:36     С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них...
Ответ Создать тему
Опции темы

Текущее время: 01:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru