Пересечение прямых
Даны две прямые
Необходимо найти точку их пересечения
Если прямые параллельные, функция возвращает 0.
Если прямые совпадают, функция возвращает 2.
Иначе, прямые пересекаются и функция возвращет 1.
Координаты точки пересечения:
x = (b2 * c1 - b1 * c2) / (a2 * b1 - a1 * b2)
y = (- a * x - c) / b
y находим из того уравнения прямой, у которого b не равно 0.
Листинг C++
int cross_line (line l1, line l2, point &p)
{
if (is_equal_line (l1, l2)) return 2;
if (is_parallel_line (l1, l2)) return 0;
p.x = (l2.b * l1.c - l1.b * l2.c) / (l2.a * l1.b - l1.a * l2.b);
p.y = (l1.b != 0 ? (- l1.c - l1.a * p.x) / l1.b : (- l2.c - l2.a * p.x) / l2.b);
return 1;
}
11.06.2007, 15:57
По всем вопросам обращаться: rumterg@gmail.com