Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.74
Kill100
406 / 272 / 37
Регистрация: 11.12.2010
Сообщений: 1,157
Завершенные тесты: 1
#1

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

11.12.2010, 04:27. Просмотров 3460. Ответов 9
Метки нет (Все метки)

17)Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них и длины их сторон. Один прямоугольник назовём первым, другой вторым определить пересекаются ли эти прямоугольники.
C++
Собственно в универе дали такую задачу да же не знаю как её вобще решить просто тупо на бумаге не то что в c++загнать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2010, 04:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... (C++):

Построить на экране рисунок одно подъездного дома, если известны координаты левого верхнего угла дома - C++
Построить на экране рисунок одно подъездного дома, если известны координаты левого верхнего угла дома, ширина и высота этажа. (дом должен...

Заполнение матрицы с левого нижнего угла по диагонали (исправить программу) - C++
Здравствуйте. Есть код программы, которая заполняет матрицу от левого верхнего угла по диагонали, а нужно, что бы заполняла с нижнего. ...

Заполнить матрицу от левого нижнего угла по диагонали: влево - вверх - C++
Заполнить матрицу А(9,9), от левого нижнего угла по диагонали: влево - вверх. Помогите пожалуйста

Заполнить матрицу ЛП, от левого нижнего угла по диагонали: влево - вверх. - C++
Здравствуйте, уважаемые форумчане. Очень нужна ваша помощь: перевести код из С в С++. Сам пытался но ничего путного не вышло. Очень буду...

Заполнить матрицу ЛП, от левого нижнего угла по диагонали: влево - вверх - C++
Здравствуйте! Помогите с кодом. Заполнить матрицу ЛП, от левого нижнего угла по диагонали: влево - вверх.

Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) - C++
Шахматная фигура «конь» перемещается на 1 клетку по горизонтали и на 2 клетки по вертикали или на 2 клетки по горизонтали и 1 - по...

9
Евгений М.
1036 / 977 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 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
Если неравенство верна, то пересекаются. Иначе - не пересекаются.

На достоверность не проверял.
1
Kill100
406 / 272 / 37
Регистрация: 11.12.2010
Сообщений: 1,157
Завершенные тесты: 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<<"Прямоугольники не пересекаются";};
0
Mr.X
Эксперт С++
3051 / 1696 / 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
Если неравенство верна, то пересекаются. Иначе - не пересекаются.

На достоверность не проверял.
Условие достаточное, но не необходимое.
0
Kill100
406 / 272 / 37
Регистрация: 11.12.2010
Сообщений: 1,157
Завершенные тесты: 1
11.12.2010, 17:39  [ТС] #5
Цитата Сообщение от Mr.X Посмотреть сообщение
Условие достаточное, но не необходимое.
то есть оно работает только в определенных случаях???
Плохо разбираюсь что такое достаточность и необходимость... Хоть что то по алгебре и геометрии такое было. (да и по мат анализу что то упоминалось..)
0
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
11.12.2010, 18:23 #6
Цитата Сообщение от Kill100 Посмотреть сообщение
то есть оно работает только в определенных случаях???
Плохо разбираюсь что такое достаточность и необходимость... Хоть что то по алгебре и геометрии такое было. (да и по мат анализу что то упоминалось..)
Это условие гласит, что если второй прямоугольник "заступит" своей левой нижней вершиной на "территорию" первого, то они пересекутся. Но он это может сделать и любой другой из своих вершин, и тоже пересечение будет.
1
Евгений М.
1036 / 977 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
11.12.2010, 19:06 #7
Цитата Сообщение от Mr.X Посмотреть сообщение
Условие достаточное, но не необходимое.
Да, кстати. Я забыл, что нужно и другие вершины проверять нужно.
0
Kill100
406 / 272 / 37
Регистрация: 11.12.2010
Сообщений: 1,157
Завершенные тесты: 1
11.12.2010, 19:20  [ТС] #8
то есть еще надо будет к координатам прибавлять длину что бы получить другие оставшиеся 3 координаты каждого треугольника и проверять то же условие пересечения?
0
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
11.12.2010, 20:41 #9
Цитата Сообщение от Kill100 Посмотреть сообщение
то есть еще надо будет к координатам прибавлять длину что бы получить другие оставшиеся 3 координаты каждого треугольника и проверять то же условие пересечения?
Да я тут писал уже такое же, но для квадратов. Надо проверить расстояние между центрами.
0
Напильнег
480 / 118 / 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)) то пересекаются
1
11.12.2010, 22:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2010, 22:36
Привет! Вот еще темы с ответами:

Пройти по любому разрешенному пути игрового поля от верхнего левого угла до правого нижнего - C++
Всем привет! Решаю вот такую простую задачку: Ссылка на нее: Задача Вот мой код:

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

Строка, обегающая весь экран от верхнего левого до нижнего правого угла по строкам слева направо - C++
подскажите пожалуйста как организовать строку (Ф.И.О., группа, дата), которая обегает весь экран от верхнего левого до нижнего правого...

Даны натуральные числа a и b которые определяют стороны прямоугольника.На сколько квадратов, стороны которого...... - C++
Есть одна задачка....помогите решить. Даны натуральные числа a и b которые определяют стороны прямоугольника.На сколько квадратов,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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