Используйте эту страницу
http://local.wasp.uwa.edu.au/~pbourke/geometry/lineline2d/
это дает формулу для пересечения двух линий. Пересечь каждую из 4 линий, которые составляют прямоугольник отдельно, а затем проверить, что u_a (место пересечения, параметризованное линией прямоугольника) находится между правильными границами, чтобы убедиться, что ваша линия не пересекает его за пределами прямоугольника.
Обратите внимание, что для этого вам понадобятся фактические точки, а не углы, но их очень легко вычислить.
Линия, проходящая через начало координат, просто (0,0) -> (cos (a), sin (a))
Линия х расстояние от нее, параллель
(0,0) + x * (sin (a), - cos (a)) -> (cos (a), sin (a)) + x * (sin (a), - cos (a))
потому что, как вы можете заметить, (sin (a), -cos (a)) - это просто вектор единичной длины, перпендикулярный вашей линии, поэтому вы просто добавляете его поверх обеих точек, образующих исходную линию.