![]() |
|
|
![]()
|
|
| Никто |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Дан отрезок и точка.Они имеют координаты A(x1,y1),B(x2,y2),C(x3,y3),отрезок AB и точка C имеют произвольные коодинаты,но AB меньше 15.0<AB<15.Нужно найти с какой стороны отрезка находится точка.
--------------------
|
|||
|
||||
| nostromo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 23.3.2006 Репутация: 5 Всего: 10 |
Мне кажется, с этим вопросом нужно идти в "Центр Помощи" (а лучше просто почитать школьные учебники).
|
|||
|
||||
| Никто |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Я не помощи спрашиваю,а алгоритм.
--------------------
|
|||
|
||||
| nostromo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 23.3.2006 Репутация: 5 Всего: 10 |
Тогда предлагаю сначала уточнить постановку задачи. Вопрос: чем различаются стороны, на которые делит отрезок всю плоскость? В любом случае, алгоритм выглядит примерно так: - составляем уравнение прямой, проходящей через две точки (концы отрезка). Получается уравнение вида A*x+B*y+C=0. - подставляем в левую часть уравнения координаты точки C. Если получилось число больше нуля, то это сторона "1", если меньше нуля, то это сторона "2", а если ноль, то точка С лежит на прямой, проходящей через концы отрезка. --------------------
На пыльных тропинках далеких планет останутся наши следы. |
|||
|
||||
| Никто |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
А как в эту формулу подставить координаты точек.
--------------------
|
|||
|
||||
| nostromo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 23.3.2006 Репутация: 5 Всего: 10 |
C(x0, y0)
---------------- d := A*x0+B*y0+C; if d > 0 then ... Добавлено @ 09:08 Внимение! Не запутайтесь: первая "С" --- это имя точки, а вторая --- число (коэффициент), которое получается в результате составления уравнения прямой. --------------------
На пыльных тропинках далеких планет останутся наши следы. |
|||
|
||||
| Никто |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Чего-то я не понял,координаты точки имеют два числа,а здесь подставляется одно или я что путаю.
--------------------
|
|||
|
||||
| MFSham |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: нет Всего: 3 |
Так ведь чтобы получить уравнение отрезка АВ нужно использовать координаты x и y двух точек.
В результате мы получили уравнение A*x+B*y+C=0. Пробелами иногда полезно пользоваться, а то пока понял что это означает... А поконкретней нельзя? Насколько я понял, надо узнать, находиться ли точка выше/ниже отрезка... Если это так, то подставляешь координату х точки С в полученное уравнение. Получаешь некоторое значение y. А теперь просто сравниваешь полученный y c координатой точки С. Если координата y точки С больше - точка С лежит выше отрезка, меньше - ниже, иначе - на отрезке. --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
|||
|
||||
| nostromo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 23.3.2006 Репутация: 5 Всего: 10 |
Даже не знаю, что и ответить ...
В выражение A*x+B*y+C подставляются два числа: вместо x --- первая координата точки, а вместо y --- вторая. Добавлено @ 16:25 P.S. Это был ответ автору темы. |
|||
|
||||
| Никто |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Если поставить отрезок,что AB стоит вертикально и A выше B,то слева или справа.
Хм,я имел в виду точки A и B.А вообще,я делаю игру.Там все поле делится на клетки 10*10 пикселей,клетки со стенами имеют координаты пересечения стены с границей клетки.Вот запутался со столкновениями,при попадании за стену некоторой точки определенного обьекта. Это сообщение отредактировал(а) Никто - 3.8.2006, 18:37 --------------------
|
||||
|
|||||
| Никто |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Понял.Что вы меня путаете.Константы и коэффициенты всегда обозначались только маленькими буквами.А большими обозначаются точки.
--------------------
|
|||
|
||||
| MFSham |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: нет Всего: 3 |
Никто тебя не путает. Сам запутался в элементарной ситуации, вот и не надо других обвинять в чем-то. --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
|||
|
||||
| Никто |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Я шучу.
--------------------
|
|||
|
||||
| Никто |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Как вычислить коеффициент c.
a=y2-y1 b=x2-x1 А c? --------------------
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |