2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 алгоритм пересечения двух произвольных отрезков прямых
Сообщение03.02.2006, 16:05 


03/02/06
4
заданных координатами...
помогите найти сабж? :roll:

 Профиль  
                  
 
 
Сообщение03.02.2006, 16:12 
Основатель
Аватара пользователя


11/05/05
4313
а в чем вопрос?

 Профиль  
                  
 
 
Сообщение03.02.2006, 16:23 


03/02/06
4
найти точку пересечения если таковая есть, но чтобы работало и с параллельными и во всех случаях... все встреченные примеры были не универсальны

 Профиль  
                  
 
 
Сообщение03.02.2006, 16:27 
Основатель
Аватара пользователя


11/05/05
4313
на плоскости?

 Профиль  
                  
 
 
Сообщение03.02.2006, 16:36 


03/02/06
4
ага... :roll:
ато как программер совсем математику забыл

 Профиль  
                  
 
 
Сообщение03.02.2006, 16:40 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Пусть (ax,ay), (bx,by) - концы одного отрезка, (cx,cy) и (dx,dy) - концы другого.

1. Проверяем, что отрезки не коллинеарны. Для этого нужно, чтобы определитель матрицы, строки которой имеют вид (bx-ax, by-ay) и (dx-cx, dy-cy), был бы ненулевой.

2. Представляем первую прямую в параметрическом виде: x(t) = ax + t*(bx-ax), y(t) = ay + t*(by-ay). Заметим, что отрезок между точками соответствует диапазону изменения t от 0 до 1.

3. Находим число t, для которого точка (x(t),y(t)) попадает на вторую прямую. Для этого нужно приравнять к нулю определитель матрицы, составленной из строк (x(t)-cx , y(t)-cy) и (dx-cx, dy-cy). Получим линейное уравнение на t, откуда находим решение t0.

4. Проверяем, что t0 лежит в диапазоне от 0 до 1. Если нет, то точка пересечения не лежит между A и B.

5. Еще нужно проверить, что точка пересечения лежит на второй прямой между C и D. Это уж сами придумайте как сделать, там ничего принципиально сложного.

 Профиль  
                  
 
 
Сообщение03.02.2006, 16:46 


03/02/06
4
ой... спасиба, буду разбираться

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group