Форум программистов, компьютерный форум, киберфорум
Наши страницы
Геометрия
Войти
Регистрация
Восстановить пароль
 
Red55
0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 29
#1

Как проверить, расположена ли точка в прямоугольнике? - Геометрия

20.01.2017, 21:30. Просмотров 495. Ответов 17
Метки нет (Все метки)

Допустим есть круг с радиусом 4. И есть точка М. Чтобы узнать находится ли точка внутри окружности нужно выполнения условия X*X + Y * Y < 16 - уравнение окружности. Вот это уравнение окружности. А как проверить расположена ли точка в прямоугольнике на картине. Есть ли "уравнение прямоугольника" или как это проверить?
http://www.cyberforum.ru/geometry/thread1218015.html
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2017, 21:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как проверить, расположена ли точка в прямоугольнике? (Геометрия):

Проверить, расположена ли точка с координатами (x,y) в четвертой четверти
даны числа x,y. Проверить истиннность высказывания:&quot;точка с координатами (x,y)...

Определить как расположена точка по отношению к окружности
Здравствуйте форумчане, помогите решить задачку. Условие: Известны...

Определить как точка расположена по отношению к окружности
дана окружность радиуса R с центром в начале координат и точка А(ха, уа)....

как расположена заданная точка Д отнасительно фигуры
Ооо спасибо работает Добавлено через 27 минут ну и последнее ))) №1 При...

Определить, как расположена точка X относительно кольца с центром в заданной точке
С помощью оператора условного перехода определить как расположена точка X...

17
jogano
Модератор
Эксперт по математике/физике
4051 / 2588 / 870
Регистрация: 09.10.2009
Сообщений: 4,536
Записей в блоге: 4
20.01.2017, 21:39 #2
Есть такое уравнение. Если центр прямоугольника в (0;0), горизонтальная сторона а и вертикальная сторона b (у вас эти величины по 24), то уравнение контура http://www.cyberforum.ru/cgi-bin/latex.cgi?\left|ay-bx \right|+\left|ay+bx \right|=ab
Чтобы точка лежала внутри него, необходимо для координат (x;y) проверяемой точки выполнение неравенства "<", а чтобы вне его - ">".
Ну или если совсем просто, то проверять одновременное выполнение двух условий:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\left{\left|x \right|<\frac{a}{2}\\\left|y \right|<\frac{b}{2} \right.
1
Excalibur921
750 / 425 / 68
Регистрация: 12.10.2013
Сообщений: 2,837
20.01.2017, 21:42 #3
1)Просто несколько if then принадлежность отрезку по X по Y.
2)Можно извратиться и сделать параметрическое уравнение примерно квадрата.
Тогда найти угол проверяемой точки от центра квадрата угол отрезка. Подставить в уравнение и проверить ближе или дальше квадрата точка…
3)Принадлежность полуплоскости будет несколько if then.
1
Red55
0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 29
20.01.2017, 22:05  [ТС] #4
Цитата Сообщение от Excalibur921 Посмотреть сообщение
1)Просто несколько if then принадлежность отрезку по X по Y.
Пример можете показать?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4372 / 2347 / 654
Регистрация: 18.10.2014
Сообщений: 3,996
20.01.2017, 23:04 #5
Цитата Сообщение от Red55 Посмотреть сообщение
Есть ли "уравнение прямоугольника" или как это проверить?
"Классическая" окружность - это окружность в Евклидовой метрике L2. А у вас на рисунке - квадрат. Квадрат - это ни что иное, как окружность в метрике L, в которой расстояние D между точками (x1, y1) и (x2, y2) определяется как

http://www.cyberforum.ru/cgi-bin/latex.cgi?D = \max (\left| x1 - x2 \right|,\:  \left| y1 - y2 \right|)

Это т.наз. расстояние Чебышева.

"Уравнение квадрата" в с центром в точке O в такой метрике имеет форму обычного уравнения окружности

http://www.cyberforum.ru/cgi-bin/latex.cgi?\max (\left| x \right|,\:  \left| y \right|) = R

где R - радиус окружности, т.е. половина стороны нашего квадрата.

Таким образом ваше решение для окружности с центром в точке O сразу же подходит и в этом случае, только надо заменить формулу расстояния Евклидовой метрики на формулу расстояния в метрике L. Т.е. для квадрата со стороной 24 (т.е. L-окружности радиуса 12) мы получим

http://www.cyberforum.ru/cgi-bin/latex.cgi?\max (\left| x \right|,\:  \left| y \right|) < 12

А если учесть, что любой прямоугольник - это "искаженный" квадрат, то несложно обобщить данное условие и на случай произвольного невырожденного прямоугольника с центром в точке O (по легко узнаваемой аналогии с формулой Евклидова эллипса)

http://www.cyberforum.ru/cgi-bin/latex.cgi?\max (\frac{\left| x \right|}{a},\:  \frac{\left| y \right|}{b}) < 1

где a и b - размеры прямоугольника.
1
Excalibur921
750 / 425 / 68
Регистрация: 12.10.2013
Сообщений: 2,837
20.01.2017, 23:05 #6
Цитата Сообщение от Red55 Посмотреть сообщение
Пример можете показать?
В гугле: принадлежность квадрату.
Врядли кто то курит метрики или Чебышева…
Это самый простой и очевидный “житейский” метод.
0
Red55
0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 29
20.01.2017, 23:14  [ТС] #7
TheCalligrapher, max - это выбор максимального значения?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4372 / 2347 / 654
Регистрация: 18.10.2014
Сообщений: 3,996
20.01.2017, 23:31 #8
Цитата Сообщение от Red55 Посмотреть сообщение
max - это выбор максимального значения?
Да.

Цитата Сообщение от Excalibur921 Посмотреть сообщение
Врядли кто то курит метрики или Чебышева…
Это под-форум Геометрия под-форума Математика форума Научный форум. Здесь без "метрик" и "Чебышева" делать нечего.
1
Excalibur921
750 / 425 / 68
Регистрация: 12.10.2013
Сообщений: 2,837
20.01.2017, 23:51 #9
Если бы не ваше кол-во постов я бы подумал что вы вчера зарегились тут и совершенно не в курсе контингента например 50 000 просмотров “уравнение высоты треугольника”… Вообще странное у вас поведение =).

Азы:
В математике есть большое количество способов решения одной задачи. Их количество зависит от уровня и желания решающего.

Если метод решает задачу просто и понятно первокласснику то зачем усложнять?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4372 / 2347 / 654
Регистрация: 18.10.2014
Сообщений: 3,996
21.01.2017, 00:01 #10
Цитата Сообщение от Excalibur921 Посмотреть сообщение
я бы подумал что вы вчера зарегились тут и совершенно не в курсе контингента например 50 000 просмотров “уравнение высоты треугольника”
А что, где-то когда-то бывает по-другому?

Цитата Сообщение от Excalibur921 Посмотреть сообщение
В математике есть большое количество способов решения одной задачи. Их количество зависит от уровня и желания решающего.
Совершенно верно! Вот и в данной теме присутствуют ответы на любой вкус и цвет. Каждый имеет возможность выбрать для себя то, что ему подходит, что его интересует, и на что него есть сейчас время. У нас тут нет никакой принудиловки.

Цитата Сообщение от Excalibur921 Посмотреть сообщение
Если метод решает задачу просто и понятно первокласснику то зачем усложнять?
Во-первых, см. выше.

Во-вторых, мне лично показалось, что вопрос ТС специально сформулирован несколько более общо, чем типичная просьба "решить и забыть".

В-третьих, вы называете это "усложнением"? Отнюдь. Понимание обобщенных способов рассмотрения задач не только облегчит решение этой задачи, но и возможных будущих задач. Это классический случай "Дай человеку рыбу...".
0
Excalibur921
750 / 425 / 68
Регистрация: 12.10.2013
Сообщений: 2,837
21.01.2017, 00:19 #11
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
называете это "усложнением"?
В каком возрасте объясняют символы больше\ меньше?
А сколько выпускников разных специальностей вузов знают метрику Чебышева? =)
Вот это и есть усложнение.
Цитата Сообщение от Excalibur921 Посмотреть сообщение
В гугле: принадлежность квадрату.
Есть среди них метрики Чебышева на первой странице хотя бы? =). Очень сомневаюсь…
0
Excalibur921
750 / 425 / 68
Регистрация: 12.10.2013
Сообщений: 2,837
21.01.2017, 00:40 #12
Кстати с OpenGL прием: залейте квадрат цветом. Читаем цвет под точкой…Догадались дальше? Работает потенциально много быстрей любых уравнений.
Или усложнить в 1 000 000 раз ваш квадрат: например каляки-маляки =)
Вот такие:
Название: ScreenShot00203.jpg
Просмотров: 61

Размер: 14.9 Кб
и нужно узнать принадлежит ли точка им. Где ваша метрика теперь?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4372 / 2347 / 654
Регистрация: 18.10.2014
Сообщений: 3,996
21.01.2017, 00:54 #13
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Кстати с OpenGL прием: залейте квадрат цветом. Читаем цвет под точкой…Догадались дальше? Работает потенциально много быстрей любых уравнений.
Спасибо, посмеялся. Это, как я понимаю, троллинг?
0
Excalibur921
750 / 425 / 68
Регистрация: 12.10.2013
Сообщений: 2,837
21.01.2017, 02:22 #14
TheCalligrapher, нет это просто ваше незнание чего то.
Кстати в формуле ошибка?
Пашет так:
Max[abs(x(E)) / distanceAB, abs(y(E)) / distanceAD]<0.5
Как проверить, расположена ли точка в прямоугольнике?
Показывает 0.5 если E принадлежит ABCD.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4372 / 2347 / 654
Регистрация: 18.10.2014
Сообщений: 3,996
21.01.2017, 02:35 #15
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Кстати в формуле ошибка?
Да, но не в собственно формуле, а в пояснении того, что такое a и b. По аналогии с предыдущей формулой, мои a и b в

http://www.cyberforum.ru/cgi-bin/latex.cgi?\max (\frac{\left| x \right|}{a},\:  \frac{\left| y \right|}{b}) < 1

- это не стороны прямоугольника, а "полуоси эллипса", т.е. половины сторон прямоугольника.
0
ДАОС_
2 / 2 / 1
Регистрация: 19.02.2017
Сообщений: 34
05.03.2017, 12:32 #16
Если ещё актуально, решил вот так:

a,b и c,d -это координаты углов

Delphi
1
2
3
4
5
6
Function DotInt(x,y,a,b,c,d:Real):Boolean;
var Tmp:Real;begin //принадлежность точки прямоугольнику, описаного вершинами углов
If a>c Then begin Tmp:=a;a:=c;c:=Tmp;end;If b>d Then begin Tmp:=b;b:=d;d:=Tmp;end;
If (x>=a)AND(x<=c) Then Result:=True else Result:=False;
If (y>=b)AND(y<=d) Then Result:=True else Result:=False;
end;//DotInt -------------------------------------------------------------------
Ну, или просто в копилку решений.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4372 / 2347 / 654
Регистрация: 18.10.2014
Сообщений: 3,996
05.03.2017, 21:16 #17
Цитата Сообщение от ДАОС_ Посмотреть сообщение
решил вот так ... в копилку решений
Пришла гневная рекламация из копилки решений. Настаивают, что у вас в "решении" написана ерунда. Согласно вашей функции, точка (-10, 5) принадлежит прямоугольнику (0,0)-(10, 10). Это близко к правильному ответу, но все таки смущает неподготовленных клиентов копилки.

Зачем вы делали проверку по x, если затем вы все равно "забиваете" ее результат проверкой по y?
0
ДАОС_
2 / 2 / 1
Регистрация: 19.02.2017
Сообщений: 34
06.03.2017, 08:53 #18
Хорошее замечание, я отрицательные числа не использовал, а надо было проверить.
А проверки координат нужны чтоб можно было подавать значения углов прямоугольника в произвольном порядке.
Поторопился, пардоньте.

И даже не в отрицательных числах было дело, а просто неверная логика.
Delphi
1
2
3
4
function AtRound(x1,y1,x2,y2,x,y:real):Boolean;
begin
If (x>x1)AND(x<x2)AND(y>y1)AND(y<y2)Then Result:=True else Result:=False;
end;
Добавлено через 8 минут
Блин, это пятиминутное ограничение. Функция называется не AtRound. а AtRect
1
06.03.2017, 08:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2017, 08:53
Привет! Вот еще темы с решениями:

Составить программу, опред. лежит ли точка в прямоугольнике
Задание: Прямоугольник определяется координатами вершин: (0, 0), (x1, 0), (x1,...

Где расположена точка
Система координат образует 4 квадрата. С клавиатуры ввести координаты X,Y....

Указать, где расположена точка на плоскости
1) На плоскости XOY задана своими координатами точка А. Указать, где она...

Указать в каком октанте расположена точка
Уважаемые программисты и обычные пользователи! Помогите мне пожалуйста 2 проги...


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

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

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