Когда у меня возникают такие проблемы (математика недостаточна или ужасно сложна), я разбиваю каждую кривую на сегменты.
Затем я ищу пересечения сегмент-сегмент.Например, сегмент на кривой Ci со всеми сегментами на кривой Cj.Даже вы можете заменить сегмент его ограничивающим прямоугольником и выполнить пересечение прямоугольного блока для быстрого сброса, фокусируясь на тех прямоугольниках, которые имеют пересечение.
Это дает грубое приближение пересечения кривой с кривой.
Помимо пересечений вы можете искать максимальные / минимальные координаты, приблизительно также с сегментами или прямоугольниками.
Получив подходящее приближение, вы можете уточнить его, уменьшив длину / размер сегментов и блоков и повторивпроверки пересечения (или макс / мин).