|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Michael Sedov 2:5015/185.2 24 Dec 2001 13:20:35 To : Grigory Soloviov Subject : пересечение двух прямых -------------------------------------------------------------------------------- GS> Hеожиданно возникла следующая проблема: Hадо найти координаты точки GS> пересечения двух прямых, каждая прямая задана двумя точками, координаты GS> которых мы знаем. GS> Помгите с алгоритмом. Вроде просто, но что-то совсем глухо, а задача, GS> насколько я понимаю часто встречается. Помогаем: Пусть первая прямая проходит через точки - (x1, y1) и (x2, y2), а вторая соответственно (x3, y3) и (x4, y4). Записываем параметрическое уравнение первой и второй прямой: / x = x1 + (x2-x1)*u \ y = y1 + (y2-y1)*u / x = x3 + (x4-x3)*v \ y = y3 + (y4-y3)*v Точка пересечения - это у которой x и y совпадают, вот и приравниваем и находим или u или v (это кому как нравится) и подставляем в первое (если находили u) или во второе (если v). А решение такое для v: ((x4-x3)(y2-y1) - (x2-x1)(y4-y3))*v = (y2-y1)(x1-x3) - (x2-x1)(y1-y3) Притом, если коэффициент при v равен 0, то прямые совпадают или параллельны. С уважением, Michael Sedov --- WP/95 Rel 1.78E (215.0) Reg. * Origin: А кофе на клавиатуру тоже вирус пролил? (2:5015/185.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/33290d454907.html, оценка из 5, голосов 10
|