Кстати, один из неожиданных способов решения-это составить интеграл Коши
и вычислить его.
А как Вы, собственно, собираетесь его вычислять?...
С алгоритмической точки зрения Ваш (и Коши) замечательный интеграл -- вовсе никакой не интеграл, а попросту сумма углов поворота (вычисляемых через векторные произведения по каждой паре последовательных вершин). Да, такой способ действительно есть. И есть у него определённый недостаток в с точки зрения эффективности -- необходимость вычислять обратные тригонометрические функции.
Для областей с самопересечениями методы лучей не работают.
Запросто работают (хотя не очень понятно, зачем вообще эта задача, если есть самопересечения). Во всяком случае, теоретически. Правда, там возникает программистская проблема в особых случаях, когда какие-то вершины попадают на луч. Но какие-то особые случаи при любом способе неизбежны -- просто из-за специфики задачи, из-за того, что аргументы функции непрерывны, в то время как её значение дискретно. При использовании лучей эта проблема снимается, например, так: предварительно обходим все вершины, разделяем их на подозрительно близкие к лучу и существенно далёкие, и если первые найдутся, то немножко поворачиваем луч. Или (что алгоритмически несколько сложнее, но вычислительно проще) отслеживаем последовательность таких подозрительных вершин.