С Новым годом! Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/188: Рейтинг темы: голосов - 188, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 7

Как проверить, лежит ли точка на отрезке прямой?

29.03.2019, 13:04. Показов 39983. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня существует отрезки, и нужно проверять попала ли точка в этот отрезок.

Прошарил интернет.
Нашел несколько способов:
лежит ли точка x,y на отрезке, вот уравнение
(x-x1)/(x2-x1)=(y-y1)/(y2-y1)

(x - x1) * (y2 - y1) - (x2 - x1) * (y - y1) = 0
тут вместо x и y. Подставляешь координаты искомой точки x,y.
x1 y1-начало отрезка
x2 y2-конец отрезка

Если все сошлось то лежит если нет то нет.
Это не рабочий вариант.

Еще проверять углы между векторами, равные 0 или 180 град. а как быть с параллельными отрезками?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.03.2019, 13:04
Ответы с готовыми решениями:

Записать каноническое уравнение прямой, проходящей через точки и проверить лежит ли точка М0 на этой прямой
Записать каноническое уравнение прямой, проходящей через точки М1(3; 4; –1), М2(2; –1; 1). Проверить, лежит ли точка М0(–2; –9; 3) на...

Проверить лежит ли точка M с координатами x,y на прямой y =ax+b
Проверить лежит ли точка M с координатами x,y на прямой y =ax+b При положительном ответе найти расстояние от точки M до начала координат ...

Проверить лежит ли точка С на данной прямой
Прямую задано координатами двух точек A и B. Координаты точки А задаются программно, а точки В - пользователем. Проверить принадлежит ли...

16
Эксперт по математике/физике
11067 / 7368 / 3989
Регистрация: 14.01.2014
Сообщений: 16,800
29.03.2019, 15:00
Лучший ответ Сообщение было отмечено Ruslan1992 как решение

Решение

К уравнению https://www.cyberforum.ru/cgi-bin/latex.cgi?(x - x_1) \cdot  (y_2 - y_1) - (x_2 - x_1) \cdot (y - y_1) = 0 следует добавить ещё систему неравенств https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases} & 0\leq (x-x_1)(x_2-x)\leq (x_1-x_2)^2  \\  & 0\leq (y-y_1)(y_2-y)\leq (y_1-y_2)^2 \end{cases}
1
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 7
29.03.2019, 19:26  [ТС]
mathidiot, а нельзя как-то к единому уравнению привести. или нужно как-то в условиях чекать
if 0\leq(x-x1)(x2-x) and (x-x1)(x2-x)\leq(x1-x2)^2 or 0\leq(y-y1)(y2-y) and (y-y1)(y2-y)\leq(y1-y2)^2 then

endif
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
29.03.2019, 19:32
Нельзя, нужно сначала установить принадлежит ли точка прямой, а потом входит ли она в отрезок.
1
703 / 529 / 176
Регистрация: 09.03.2019
Сообщений: 1,404
29.03.2019, 19:52
Или можно проверить такие неравенства:
https://www.cyberforum.ru/cgi-bin/latex.cgi?min(x1,x2)\leq x\leq max(x1,x2).
1
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 7
29.03.2019, 20:22  [ТС]
Есть у меня вот такая идея (по задумке должен разбить на прямоугольники):
https://www.cyberforum.ru/atta... 1553880130
мне нужно знать просто в какой промежуток отрезка я вклиниваюсь, чтобы сюда переписать массивы (всем спасибо )
Миниатюры
Как проверить, лежит ли точка на отрезке прямой?  
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
30.03.2019, 01:37
Может полезней погуглить “принадлежность точки отрезку” перед созданием великов?
Для большей наглости можно и язык указать например С++…Для еще большей наглости может поискать готовые библиотеки для языка. Отрезки 90 градусов это частный случай, но стоит ли уделять ему внимание и тратить время на велик? Наверно проверка на совпадение X или Y координат точек задающих отрезок и вся проверка.
0
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 7
30.03.2019, 19:15  [ТС]
Excalibur921, ну это гуглил, помойка (часто многоугольники суют поисковики). я признаюсь тупой как пробка. Сайты либо не о чем (пусты или шарят только люди в этой теме), либо не точная инфа (я код вставлял кое-что не работало, пример на ноль делить нельзя и обнуление итд)
вроде нагуглил еще скалярное произведение векторов > 0
ну согласен проверка координат, вот и вся проверка
0
16 / 9 / 7
Регистрация: 27.11.2019
Сообщений: 60
24.02.2021, 16:33
Короче, всё гораздо проще, дружище. Если сумма расстояний от концов отрезка до точки равна длине отрезка, то точка лежит на нём...
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
25.02.2021, 11:40
Однако, вспомним о понятии ГЕОМЕТРИЧЕСКОЕ МЕСТО, Какое геометрическое место представляет отрезок AB?
В параметрическом виде это будем так:
X = A*t + (1-t)*B и 0<= t <=1
по-координатно
x = xA *t+ xB*(1-t)
y = yA *t+ yB*(1-t)

Добавлено через 4 минуты
Остается решить эту систему относительно t и проверить, лежит ли t в указанных пределах.

Аналогично решается многие задачи с отрезками, лучами и т.п.
0
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
14.04.2024, 11:26
Цитата Сообщение от Байт Посмотреть сообщение
В параметрическом виде это будем так:
X = A*t + (1-t)*B и 0<= t <=1
кто точки умножает? жуть же, не?)
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,803
Записей в блоге: 2
14.04.2024, 12:21
Цитата Сообщение от DOPIXKMNLD Посмотреть сообщение
кто точки умножает? жуть же, не?)
Это как раз грамотная запись, в векторах. А вот все лазания в компонентах (x и y) нет, начиная с условия. Решение должно быть общим как для плоского случая (x, y), так и для 3D (x, y, z)
0
Эксперт по математике/физике
5016 / 3628 / 1164
Регистрация: 01.09.2014
Сообщений: 9,790
14.04.2024, 12:28
A*t + (1-t)*B — это аффинная комбинация точек (не векторов) A и B в аффинном пространстве.
0
100 / 35 / 3
Регистрация: 09.03.2024
Сообщений: 96
Записей в блоге: 8
14.04.2024, 15:26
Цитата Сообщение от Ruslan1992 Посмотреть сообщение
вот уравнение
(x-x1)/(x2-x1)=(y-y1)/(y2-y1)
В этом уравнении есть шанс нарваться на деление на ноль. Точнее, целых два шанса, в левой и правой частях. Придется делать отдельные проверки для горизонтальных и вертикальных отрезков.

Если точка лежит на отрезке, то сумма расстояний от точки до концов отрезка будет равна длине отрезка, в противном случае - больше длины отрезка.

Длину отрезка по координатам посчитать легко: https://www.cyberforum.ru/cgi-bin/latex.cgi?l = \sqrt{{({x}_{2}-{x}_{1})}^{2}+({y}_{2}-{y}_{1})^{2}}

Аналогично определяется расстояние от дочки до начала/конца отрезка. Метод работает при любой ориентации отрезка, а также легко обобщается на 3 измерения (ну или больше, если вдруг душа пожелает).
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,803
Записей в блоге: 2
14.04.2024, 17:16
Цитата Сообщение от 3D Homer Посмотреть сообщение
A*t + (1-t)*B — это аффинная комбинация точек (не векторов) A и B в аффинном пространстве.
А что дает это (мерзкое) слово "аффинный"? Запугать человека и напустить туману, без всякой выгоды? Проще и лучше сказать что определены операции векторной алгебры, в том числе и умножение вектора на скаляр (и наоборот)

Цитата Сообщение от steelcraft Посмотреть сообщение
Если точка лежит на отрезке, то сумма расстояний от точки до концов отрезка будет равна длине отрезка, в противном случае - больше длины отрезка.
Звучит гордо и кажется бесспорным, но на деле такой способ, по меньшей мере, неудобен. При расчете "во флотах" (числах с плавающей запятой) Вы почти никогда не получите точного равенства длин (как впрочем и нуля при подстановке в ур-е прямой).
0
Эксперт по математике/физике
5016 / 3628 / 1164
Регистрация: 01.09.2014
Сообщений: 9,790
14.04.2024, 17:22
Аффинные пространства тесно связаны с векторными. На самом деле, это почти одно и то же, потому что векторное пространств является частью аффинного, и между ними есть взаимно-однозначное соответствие, но только при выборе некоторой точки отчета. Различие в том, что аффинное пространство состоит из точек, а не векторов, и по умолчанию в нем нет "главной" точки, аналогичной нулевому вектору. Все точки равноправны. И тем не менее аффинные комбинации точек (когда сумма коэффициентов равна 1) определены.

В общем, можно говорить об аффинном пространстве, когда вы работаете с точками и (в рассматриваемой задаче) нет понятия длин и углов.
1
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,803
Записей в блоге: 2
14.04.2024, 19:11
Цитата Сообщение от 3D Homer Посмотреть сообщение
В общем, можно говорить об аффинном пространстве, когда вы работаете с точками и (в рассматриваемой задаче) нет понятия длин и углов.
Спасибо за объяснение (знания лишними не бывают), просто в данном случае не видно необходимости в столь высоких материях. С чего начинаются вектора?

- давайте сложим 2 вектора (чертеж)
- умножим вектор на число, получим вектор подлиннее..

В общем, то что уж всем понятно Ну вот она и формула взвешивания/интерполяции

A*t + (1-t)*B

Где вся возня с компонентами внутри, как и должно быть. А "вектор или точка" - это так называемая "дуаль" о которой спорить можно долго. Одни и те же данные (x, y, z) выражают все-таки разные сущности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2024, 19:11
Помогаю со студенческими работами здесь

Проверить лежит точка на отрезке или нет
Проверить лежит точка на отрезке или нет.

Лежит ли точка А на прямой y=a+4?
Помогите пжл,завтра нужно модуль сдавать а у меня ничего не готово.Оооочень нужно) Лежит ли точка А на прямой y=a+4?

Лежит ли точка на прямой
Напишите функцию line(s, t), которая получает на вход две строки: s — уравнение прямой в виде kx+b и t — координаты точки на плоскости в...

Лежит ли точка на прямой?
Помогите пожалуйста! Проверить, принадлежат ли три точки одной прямой?

Лежит ли точка на отрезке в пространстве?
Доброго дня суток. Такой возник вопрос. Задача стоит в пространстве. Если б было на плоскости, тогда все было б легко, и не спрашивал. А...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru