Точка пересечения между сплайном и линией

Я пытаюсь найти способ вычисления пересечения между b-сплайном и прямой. Пока Google не очень помог.

Ответ 2

Чистый математический подход:

  • Преобразуйте сплайн и линию так, чтобы линия лежала на оси X.
  • Вычислить точки на сплайне, где Y = 0 (зависит от порядка сплайна).
  • Преобразуйте эти точки обратно в исходную систему сердечников.

Если это так, как вы собираетесь, я могу выработать необходимые формулы.

Ответ 3

Ваш лучший подход может заключаться в том, чтобы разбить ваш сплайн на отдельные сегменты линии и протестировать каждый сегмент линии для пересечения с линией. Сплайн может пересекать линию более чем в одной точке, поэтому вам также нужно будет решить, какой из них вам интересен.