Линия пересекает прямоугольник - как найти точки пересечения?
Я рисую прямоугольник на холсте и линию от центра прямоугольника до некоторой случайной точки в координатном пространстве.
Теперь я хочу обрезать линию по длине, которая находится внутри прямоугольника, чтобы линия начиналась у края прямоугольника.
Как я мог это сделать?
пример
Прямоугольник может быть определен двумя точками:Pstart(1, 3)
, Pend(3, 1)
Центральная точка может быть вычислена для:P(2, 2)
Теперь нарисуйте линию отP(2, 2)
вQ(10, 2)
.Поскольку я знаю, что ширина прямоугольника равна 2, я могу сказать, что строка должна начинаться сP(4, 2)
вместоP(2, 2)
.
Это становится более сложным, когда точка не параллельна одной из осей XY. Причем длина внутри прямоугольника будет разной величиной для диагональных линий.
Как я могу рассчитать начальное смещение для точки линии относительно центра прямоугольника и конечной точки линии?
Вероятно, мне нужно будет найти точку, где линия будет пересекать прямоугольник, а затем просто позволить линии начаться в точке пересечения. Но как я мог получить эту точку?