Страница 1 из 1
Проверить, лежит ли точка на отрезке с толщиной
Добавлено: 19.12.2017 17:50:41
vulturedroid
Есть уравнение (x-x1)/(x2-x1)=(y-y1)/(y2-y1) , можно с помощью него проверить, лежит ли точка на отрезке. Но как его надо изменить, чтобы работало при различной толщине отрезка?
Re: Проверить, лежит ли точка на отрезке с толщиной
Добавлено: 19.12.2017 19:35:35
tema
Теорема Пифагора

Re: Проверить, лежит ли точка на отрезке с толщиной
Добавлено: 19.12.2017 20:20:58
Pavia
(The AP Professional graphics CD-ROM) Andrew S. Glassner-Graphics Gems. Volume 1-AP Professional (1995)
Алгоритм 49 страница, а математика на 47-48 страницах.
Re: Проверить, лежит ли точка на отрезке с толщиной
Добавлено: 19.12.2017 22:43:11
Дож
Вектор N=(y2-y1,x1-x2) перпендикулярен к прямой.
Если его скалярно умножить на любую точку на прямой, например, на (x1,y1), то получится "расстояние" от (0,0) до прямой вдоль N:
D = x1*(y2-y1) + y1*(x1-x2)
Возьмём тестируемую точку (X,Y), мы легко можем посчитать "расстояние" от неё до прямой, умножив скалярно на N и вычтя D:
X*(y2-y1) + Y*(x1-x2) - D
Остаются мелочи: поделить результат на длину вектора N, взять модуль и сравнить с толщиной [поделённой на два].
Re: Проверить, лежит ли точка на отрезке с толщиной
Добавлено: 20.12.2017 10:46:28
vitaly_l
vulturedroid писал(а):как его надо изменить
Его ненужно менять, его можно запустить несколько раз подряд (в соответствии с толщиной линии) или проверять на вхождение точки в прямоугольник.
Добавлено спустя 1 час 11 минут 111 секунд:Дож писал(а):легко можем посчитать "расстояние" от неё до прямой
А как быть, если отрезок например параллелен оси координат и точка на одной линии, совсем рядом с концом отрезка? Точка находится очень близко, но она не на линии. И ширина линии - задана больше расстояния между точкой и концом отрезка. Расстояние до линии будет попадать в предложенный алгоритм, но в реальности, точка-то - не будет на отрезке.
Re: Проверить, лежит ли точка на отрезке с толщиной
Добавлено: 20.12.2017 11:04:42
vada
А еще если отрезок растровый. А еще если его концы закруглены. А еще точка рядом с концом отрезка.
Тут непочатый край исследований!

Re: Проверить, лежит ли точка на отрезке с толщиной
Добавлено: 21.12.2017 00:18:19
tema
vitaly_l писал(а):Дож писал(а):легко можем посчитать "расстояние" от неё до прямой
А как быть, если отрезок например параллелен оси координат и точка на одной линии, совсем рядом с концом отрезка? Точка находится очень близко, но она не на линии. И ширина линии - задана больше расстояния между точкой и концом отрезка. Расстояние до линии будет попадать в предложенный алгоритм, но в реальности, точка-то - не будет на отрезке.
В этом случае каноническое уравнение прямой не канает. Надо это просто учитывать и все дела. Можно переводом в обычное уравнение.
Re: Проверить, лежит ли точка на отрезке с толщиной
Добавлено: 22.12.2017 09:03:25
zub