Разбиение самопересекающегося многоугольника на части без самопересечений
На вход подается многоугольник с самопересечениями, необходимо разбить на самонепересекающиеся многоуольники (на части без самопересечений). Формат входа, допустим, задается координатами точек в плоскости, уложенных в отрезки, в порядке обхода. Вопрос мой состоит в том, каким алгоритмом стоит это дело решать? Существует ли какой-то описанный алгоритм, решающий эту задачу? Если нет, то какие должны быть этапы и алгоритмы на этих этапах?