Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Точка и отрезок 
:(
    Опции темы
Никто
Дата 30.7.2006, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Дан отрезок и точка.Они имеют координаты A(x1,y1),B(x2,y2),C(x3,y3),отрезок AB и точка C имеют произвольные коодинаты,но AB меньше 15.0<AB<15.Нужно найти с какой стороны отрезка находится точка. 
--------------------
   
PM MAIL   Вверх
nostromo
Дата 30.7.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 5
Всего: 10



Мне кажется, с этим вопросом нужно идти в "Центр Помощи" (а лучше просто почитать школьные учебники). 
PM MAIL   Вверх
Никто
Дата 30.7.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Я не помощи спрашиваю,а алгоритм. 
--------------------
   
PM MAIL   Вверх
nostromo
Дата 30.7.2006, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 5
Всего: 10



Цитата

Я не помощи спрашиваю,а алгоритм. 

Тогда предлагаю сначала уточнить постановку задачи. Вопрос: чем различаются стороны, на которые делит отрезок всю плоскость?

В любом случае, алгоритм выглядит примерно так:
- составляем уравнение прямой, проходящей через две точки (концы отрезка). Получается уравнение вида A*x+B*y+C=0.
- подставляем в левую часть уравнения координаты точки C. Если получилось число больше нуля, то это сторона "1", если меньше нуля, то это сторона "2", а если ноль, то точка С лежит на прямой, проходящей через концы отрезка.
 
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
Никто
Дата 1.8.2006, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



А как в эту формулу подставить координаты точек.
--------------------
   
PM MAIL   Вверх
nostromo
Дата 2.8.2006, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 5
Всего: 10



C(x0, y0)
----------------
d := A*x0+B*y0+C;
if d > 0 then ...

Добавлено @ 09:08 
Внимение! Не запутайтесь: первая "С" --- это имя точки, а вторая --- число (коэффициент), которое получается в результате составления уравнения прямой.

--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
Никто
Дата 2.8.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Чего-то я не понял,координаты точки имеют два числа,а здесь подставляется одно или я что путаю.
--------------------
   
PM MAIL   Вверх
MFSham
Дата 2.8.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: нет
Всего: 3



Так ведь чтобы получить уравнение отрезка АВ нужно использовать координаты x и y двух точек.
В результате мы получили уравнение A*x+B*y+C=0.

Цитата(Никто @  30.7.2006,  12:23 Найти цитируемый пост)
AB меньше 15.0<AB<15

Пробелами иногда полезно пользоваться, а то пока понял что это означает...

Цитата(Никто @  30.7.2006,  12:23 Найти цитируемый пост)
Нужно найти с какой стороны отрезка находится точка. 

А поконкретней нельзя? Насколько я понял, надо узнать, находиться ли точка выше/ниже отрезка...

Если это так, то подставляешь координату х точки С в полученное уравнение. Получаешь некоторое значение y. А теперь просто сравниваешь полученный y c координатой точки С. Если координата y точки С больше - точка С лежит выше отрезка, меньше - ниже, иначе - на отрезке. 


--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
nostromo
Дата 2.8.2006, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 5
Всего: 10



Даже не знаю, что и ответить ...

В выражение 
A*x+B*y+C
подставляются два числа: вместо x --- первая координата точки, а вместо y --- вторая.

Добавлено @ 16:25 
P.S. Это был ответ автору темы.
PM MAIL   Вверх
Никто
Дата 3.8.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Цитата

Вопрос: чем различаются стороны, на которые делит отрезок всю плоскость?

Если поставить отрезок,что AB стоит вертикально и A выше B,то слева или справа.
Цитата

В выражение 
A*x+B*y+C
подставляются два числа: вместо x --- первая координата точки, а вместо y --- вторая.

Хм,я имел в виду точки A и B.А вообще,я делаю игру.Там все поле делится на клетки 10*10 пикселей,клетки со стенами имеют координаты пересечения стены с границей клетки.Вот запутался со столкновениями,при попадании за стену некоторой точки определенного обьекта.

Это сообщение отредактировал(а) Никто - 3.8.2006, 18:37
--------------------
   
PM MAIL   Вверх
Никто
Дата 8.8.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Понял.Что вы меня путаете.Константы и коэффициенты всегда обозначались только маленькими буквами.А большими обозначаются точки.
--------------------
   
PM MAIL   Вверх
MFSham
Дата 8.8.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: нет
Всего: 3



Цитата(Никто @  8.8.2006,  14:50 Найти цитируемый пост)
Понял.Что вы меня путаете.

Никто тебя не путает. Сам запутался в элементарной ситуации, вот и не надо других обвинять в чем-то.  smile 
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
Никто
Дата 8.8.2006, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Я шучу. smile 
--------------------
   
PM MAIL   Вверх
Никто
Дата 16.8.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Как вычислить коеффициент c.
a=y2-y1
b=x2-x1
А c?
--------------------
   
PM MAIL   Вверх
Akina
Дата 16.8.2006, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Код

Posession = Sign(yC - yA + (xC - xA) * (yB - yA) / (xB-xA))



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0792 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.