Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> лежит ли точка на отрезке 
:(
    Опции темы
_hunter
  Дата 13.5.2005, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Добрый день.

Как определить лежит ли точка на отрезке?

С уважением...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
batigoal
Дата 13.5.2005, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

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



Собственно, через уравнение прямой... Сформулируй поконкретнее.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Fixin
Дата 13.5.2005, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

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



Ничего себе!!! _hunter Вопосы задает! Никак волки сдохли. Ладно, звиняюсь.

Отрезок - не прямая. Конкретизируй.
PM MAIL ICQ   Вверх
_hunter
Дата 13.5.2005, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



просто на работе учебника по математике нет, а гугл формулы паршиво ищет ( или я запрос неправильный ввел... ): уравнение прямой, через две точки нашел только на 5-й странице...

значит так... конкретизирую:
сейчас определение происходит так:
сначала смотрю лежит ли точка на прямой, частью которой является этот отрезок.
потом считаю сумму расстояний от точки до концов отрезка -- если она равна длине отрезка -- точка лежит на отрезке

но что-то мне в этом способе не нравится ( что -- незнаю... )



--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Fixin
Дата 13.5.2005, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

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



А просто ограничить прямую по х нельзя? Типа: если точка на этой прямой и находится правее левого и левее правого концов, то она на отрезке.
PM MAIL ICQ   Вверх
cardinal
Дата 14.5.2005, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Как всегда помогут векторы:

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  otrezok.gif


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Akina
Дата 14.5.2005, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(_hunter @ 13.5.2005, 22:54)
сначала смотрю лежит ли точка на прямой, частью которой является этот отрезок.
потом считаю сумму расстояний от точки до концов отрезка -- если она равна длине отрезка -- точка лежит на отрезке

то что "с начала" - можно смело выкинуть...


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

PM MAIL WWW ICQ Jabber   Вверх
_hunter
Дата 14.5.2005, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



cardinal, дык кажись так и делаю... ( точнее по количеству вычислений аналогично получается )


Akina, т.е. просто сумму растояний посчитать и все? я, похоже перемудрил smile


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Akina
Дата 14.5.2005, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(_hunter @ 14.5.2005, 11:57)
т.е. просто сумму растояний посчитать и все?

Конечно... для каких точек, кроме точек отрезка, будет равенство? да ни для каких...


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

PM MAIL WWW ICQ Jabber   Вверх
cardinal
Дата 14.5.2005, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Цитата(Akina @ 14.5.2005, 09:45)
Конечно... для каких точек, кроме точек отрезка, будет равенство? да ни для каких...

Тоже логично smile А главное по принципу как тут
http://forum.vingrad.ru/index.php?showtopi...ndpost&p=396640
Но если речь идет о программировании, то то что я предложил можно ИМХО спрограммировать лучше...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
ChofCh
Дата 14.5.2005, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 27.4.2005
Где: г. Долгопрудный

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



Аналит рулит! Я провел не одну ночь в погоне за "кровавым FPS" и даже деления избегаю, не то что извлечения квадратного корня (а это прийдется делать, если искать расстояние между точками). Приведенный ниже код должен работать быстрее, чем предложенные в топике варианты.
Рассмотрим векторы a и b с началом в испытуемой точке и концами на концах отрезка:
Тогда, если [a,b]=0 (ax*by-ay*bx=0), то испытуемая точка и концы отрезка лежат на одной прямой. Если концы отрезка лежат по разные стороны от испытуемой точки, то (a,b)<=0 (ax*bx+ay*by<=0)
Итого для проверки на принадлежность необходимо выполнить всего 4 умножения.

Это сообщение отредактировал(а) ChofCh - 14.5.2005, 16:19
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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