Я пытаюсь найти способ рассчитать пересечение между b-сплайном и прямой линией. Пока что Google не особо помог.
Самый эффективный алгоритм, о котором я когда-либо слышал, называется отсечкой Безье.
Вот глава книги о пересечении кривых и сплайнов (pdf).
Чисто математический подход:
Если вы идете по этому пути, я могу выработать необходимые формулы.
Наилучшим подходом может быть разбиение сплайна на отдельные отрезки и проверка каждого отрезка на предмет пересечения с отрезком. Сплайн может пересекать линию более чем в одной точке, поэтому вам также придется решить, какая из них вас интересует.