Консультация № 109237
13.11.2007, 16:15
0.00 руб.
0 1 1
мне нужен алгоритм определения точек пересечения отрезка и прямоугольника, если отрезок лежит внутри прямоугольника результатом будут точки, задающие отрезок.
пример: входные параметры x1O=0, x2O=5, y1O=1, y2O=1 (отрезок)
x1P=2, x2P=4, x3P=4, x4P=2, y1P=2, y2P=2, y3P=0,y4P=0(прямоугольник)
выходные x1S=2, x2S=4, y1S=1, y2S=1 (результат)
спасибо заранее, буду рад любому ответу (лучше не Pascal)

Обсуждение

Неизвестный
13.11.2007, 18:02
общий
это ответ
Здравствуйте, Павлик!

Для упрощения задачи можно сделать аффинное преобразование, так чтобы один угол прямоугольника лежал в начале координат, а его смежные с этим углом стороны — вдоль осей координат (в положительном направлении), и чтобы длина сторон стала равной 1. В полученной ситуации очень просто найти пересечение, то есть координаты двух точек ;). Сделав обратное преобразование мы найдём их координаты в исходной системе.

Конечно можно сделать всё только на формулах, но имхо приведённое решение гораздо красивее.

Будут вопросы, обращайтесь в мини-форум.
Форма ответа