ЛКШ 2016. Группа A. День 11. Геометрия-1.
- Python
- base knowlege
- tkinter, visualizer
- 2D convex hull
- Алгоритм Andrew'79: отдельно строим верхнюю и нижнюю часть. Преимущества.
- Jarvis. Заворачиванием подарка за O(nk).
- Пересечение полуплоскостей
- Bounding box
- Пересечение полуплоскостей за O(n2)
- Простой случай: y > kx + b (k > 0)
- Пересечение полуплоскостей в общем случае: отдельно строим и пересекаем верхнюю и нижнюю части
- Пересечение полуплоскостей в общем случае: удваиваем и выделяем цикл
- Двойственность с выпуклой оболочкой: (x, y) ↔ (k, -b)
- Примеры использования: пересечение полуплоскостей за O(nk), медиана углов n2 прямых построенных по n точкам