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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2012, 10:45   #1
777pro777
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 29
По умолчанию задача из Вычислительной геометрии

12. Дан прямоугольник, заданный двумя противоположными вершинами (X1, Yl); (Х2, Y2) и точка (X, Y).Определить, лежит ли эта точка внутри данного прямоугольника. как ее решить? я так понимаю мы две точки задаем а третью и четвертую программа сама вычесляет
777pro777 вне форума Ответить с цитированием
Старый 14.02.2012, 11:21   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

всё НАМНОГО проще:
Код:
if (X>=X1) and (X<=X2) and (Y<=Y1) and (Y>=Y2) then --- Точка X,Y  лежит внутри прямоугольника
else - точка X, Y лежит ВНЕ прямоугольника.
Пара важных моментов.
Первое. В условии задачи должно быть чётко задано - "дан прямоугольник, стороны которого паралельны осям координат, заданный двумя противоположными вершинами ...... ". в моём решению используется именно это допущение. Если же это не так (т.е. дан прямоугольник, стороны которого НЕ паралельны осям координат), то двумя вершинами прямоугольник не определяется однозначно - поэтому решения задачи НЕТ.

Второе. В решении использовано предположение, что X1, Y1 - это координаты ЛЕВОГО ВЕРХНЕГО угла, а X2, Y2 - координаты ПРАВОГО НИЖНЕГО угла.
по хорошему надо бы проверить координаты на соответствие данному условию и, если заданы другие координаты - либо переставить их нужным образом в условии сравнения, либо присвоить нужные координаты дополнительны переменным и сравнивать уже координаты точки X, Y со значениями координат в этих переменных.

Последний раз редактировалось Serge_Bliznykov; 14.02.2012 в 11:26.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.02.2012, 11:22   #3
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

если min(X1,X2)<X<max(X1,X2) и min(Y1,Y2)<Y<max(Y1,Y2) то лежит
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 14.02.2012, 11:46   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

KobolD, согласен, вашей формуле всё равно, какие именно противоположные углы заданы.

впрочем, т.к. есть всего ДВА варианта расположения противоположных углов, то мой совет насчёт сравнения углов ничем не хуже. (всё равно min n max - это те же операции сравнения... )
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Естественный язык]Задача по геометрии Бинари Помощь студентам 11 20.11.2011 07:06
С++: немного геометрии)) Blondy Помощь студентам 7 02.04.2011 14:59
Задача по геометрии (мат. методы) XYLIGANXYL Общие вопросы по Java, Java SE, Kotlin 5 12.02.2011 22:20
Программа по вычислительной математике TaHe4ka C++ Builder 2 08.10.2010 23:43
Задача по геометрии на С Matadora Помощь студентам 6 17.09.2010 10:09