Линия пересекает прямоугольник - как найти точки пересечения?

m рисуя прямоугольник на холсте и линию от центра прямоугольника до некоторой случайной точки в координатном пространстве.

Теперь я хочу обрезать линию по длине, которая находится внутри прямоугольника, чтобы линия начиналась у края прямоугольника.

Как я мог это сделать?

пример

Прямоугольник может быть определен двумя точками:Pstart(1, 3)Pend(3, 1)Центральная точка может быть вычислена для:P(2, 2)Теперь нарисуйте линию отP(2, 2) кQ(10, 2)

Поскольку я знаю, что ширина прямоугольника равна 2, я могу сказать, что строка должна начинаться сP(4, 2) вместо .P(2, 2)

Это становится более сложным, когда точка не параллельна одной из осей XY. Причем длина внутри прямоугольника будет разной величиной для диагональных линий.

Как я могу рассчитать начальное смещение для точки линии относительно центра прямоугольника и конечной точки линии?

Наверное яЯ должен найти точку, где линия будет пересекать прямоугольник, а затем просто позволить линии начаться в точке пересечения. Но как я мог получить эту точку?

Ответы на вопрос(3)

Ваш ответ на вопрос