Помощь - Поиск - Пользователи - Календарь
Полная версия: Точка и отрезок
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Witaliy
Как узнать, пренадлежыть ли точка А отрезку ВС? Даны координаты точки и отрезка.

Спасибо.
amega
подставить координаты точки в уравнение отрезка
Witaliy
Спасибо большое

Цитата
подставить координаты точки в уравнение отрезка

Можете что-то об етом уровнении розказать?
amega
Цитата
Даны координаты точки и отрезка.

можно их увидить? уранение отрезка можна по разному записать
Witaliy
Например координаты концов отрезка:
B(0;0)
C(3;2)
amega
читай пост номер 3

Добавлено через 4 мин.
либо поставляеш в (x2-x1)*(y-y1)=(x-x1)*(y2-y1) x1,x2y1,y2 извесны у тебя постовляеш точку если рано то принадлежит иначе нет
renesko1
y = kx + b
k - tg наклона
tg = delta y / delta x
wacko.gif
...
на практике )
A(2;3)
B(1;5)
k = (3-5)/(2-1);
ты знаешь k ;
b = y - kx ;
где x, y к примеру 2 и 3... а k ты уже нашёл
это ты нашёл b ;
...................
теперь ты знаешь уравнение прямой
y = kx + b
Что бы узнать лежит ли точка на прямой подставь
всместо х и у координаты точки, если выйдет 5 = 5 или 6 = 6 и тд то лежит на ПРЯМОЙ...
TarasBer
Цитата(renesko1 @ 16.02.2009 22:08) *

y = kx + b
k - tg наклона
tg = delta y / delta x
wacko.gif
...
на практике )
A(2;3)
B(1;5)
k = (3-5)/(2-1);
ты знаешь k ;
b = y - kx ;
где x, y к примеру 2 и 3... а k ты уже нашёл
это b ;
...................
теперь ты знаешь уравнение прямой
y = kx + b
Что бы узнать лежит ли точка на прямой подставь
всместо х и у координаты точки, если выйдет 5 = 5 или 6 = 6 и тд то лежит на ПРЯМОЙ...


Только тут главное не забыть случай, когда точки на одной вертикально прямой.
Я бы сделал так
PointOnLine := ((x-x1)*(y-y2)=(x-x2)*(y-y1))
and (((x>=x1)and(x<=x2))or((x<=x1)and(x>=x2)))
and (((y>=y1)and(y<=y2))or((y<=y1)and(y>=y2)));
renesko1
Про вертикаль ты прав, я забыл...
Я не давно просто делал прогу, где по 3 точкам рисуется окружность, и эту пролему решал так
... += 0.000001 ; blum.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.