Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.mmonline.ru/forum/read/7/23363/
Дата изменения: Sat Feb 19 23:14:08 2011
Дата индексирования: Sat Feb 19 23:14:08 2011
Кодировка: Windows-1251
MMOnline | Форумы | Разное | help,please!

help,please!

Автор темы garik 
06.06.2002 15:18
garik
help,please!
Вот какое дело - ОЧЕНЬ срочно нужен алгоритм, который позволит определить,пересекаются ли два отрезка на плоскости, и при этом будет использовать МИНИМАЛЬНОЕ количество операций... Подскажите кто-нибудь гениальную идею по этому поводу. Заранее благодарен.
Гарик.
06.06.2002 15:32
Avgur
Вопрос.
Как задаются параметры отрезков?
То есть что про них известно? Координаты точек, ограничивающих отрезок?
Уточните условие задачи.

С уважением - Avgur.
06.06.2002 23:04
Просто студент
если отрезки заданы своими концами (a1,b
если отрезки заданы своими концами (a1,b1) и (a2,b2).
то
{
boolean crossed;
crossed = (a1<=a2) ? a2<=b1 : a1<b2;
}

Не знаю, как насчет кол-ва операций, но проще вроде некуда.
09.06.2002 11:41
Bifacial
Может быть так
Концы одного отрезка лежат в разных полуплоскостях,порожденных прямой , проходящей через другой отрезок.
алгоритм таков:
1. Находим вектора h1 и h2 - ортогональные к отрезкам.
2. Пересекаются если:<h1,a2-a1>*<h1,b2-a1><=0 & <h2,a1-a2>*<h2,b1-a2><=0
(a1 и b1 - координаты первого отрезка , a2 и b2 - второго)
Извините, только зарегистрированные пользователи могут публиковать сообщения в этом форуме.

Кликните здесь, чтобы войти