Я создал "blob" форму, исправляя кубические кривые Безье вместе (снимок экрана ниже). Я хотел бы иметь возможность обнаружить ситуацию, когда кривая пересекла себя или другую кривую и задавалась вопросом, существует ли рекомендованный подход или известный алгоритм для этого?
Одна из моих идей заключалась в том, чтобы использовать FlatteningPathIterator
для разложения фигуры на прямые сегменты линии, а затем определить, пересекается ли данный сегмент с другим, но мне было бы интересно, есть ли лучший подход (так как это будет имеют квадратичную производительность). Если я продолжу этот метод, существуют ли библиотечные функции в Java, чтобы определить, перекрываются ли два сегмента линии?
Спасибо.
Без перекрестных ссылок
Нет кроссовера http://www.freeimagehosting.net/uploads/7ad585414d.png
Cross-Over
Кроссовер http://www.freeimagehosting.net/uploads/823748f8bb.png