IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Точка и отрезок
Witaliy
сообщение 15.02.2009 19:36
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 43
Пол: Мужской
Реальное имя: Witaliy

Репутация: -  0  +


Как узнать, пренадлежыть ли точка А отрезку ВС? Даны координаты точки и отрезка.

Спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
amega
сообщение 15.02.2009 21:38
Сообщение #2


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


подставить координаты точки в уравнение отрезка
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 15.02.2009 23:13
Сообщение #3


Гость






Witaliy,
AlgoList: Проверка принадлежности точки отрезку
 К началу страницы 
+ Ответить 
Witaliy
сообщение 16.02.2009 20:14
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 43
Пол: Мужской
Реальное имя: Witaliy

Репутация: -  0  +


Спасибо большое

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

Можете что-то об етом уровнении розказать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
amega
сообщение 16.02.2009 20:18
Сообщение #5


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


Цитата
Даны координаты точки и отрезка.

можно их увидить? уранение отрезка можна по разному записать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Witaliy
сообщение 16.02.2009 21:59
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 43
Пол: Мужской
Реальное имя: Witaliy

Репутация: -  0  +


Например координаты концов отрезка:
B(0;0)
C(3;2)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
amega
сообщение 16.02.2009 22:02
Сообщение #7


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


читай пост номер 3

Добавлено через 4 мин.
либо поставляеш в (x2-x1)*(y-y1)=(x-x1)*(y2-y1) x1,x2y1,y2 извесны у тебя постовляеш точку если рано то принадлежит иначе нет

Сообщение отредактировано: amega - 16.02.2009 22:07
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
renesko1
сообщение 16.02.2009 22:08
Сообщение #8


поиск
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: nir

Репутация: -  2  +


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 и тд то лежит на ПРЯМОЙ...

Сообщение отредактировано: renesko1 - 16.02.2009 22:09


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 16.02.2009 22:12
Сообщение #9


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(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)));


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
renesko1
сообщение 16.02.2009 22:16
Сообщение #10


поиск
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: nir

Репутация: -  2  +


Про вертикаль ты прав, я забыл...
Я не давно просто делал прогу, где по 3 точкам рисуется окружность, и эту пролему решал так
... += 0.000001 ; blum.gif


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 4:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"