Минимальная выпуклая оболочка по методу Эндрю
Скрипт отрисовывает рисунок геометрической змейки с помошью функции drawSnake, точки наносятся на холст в цикле.
Функция andrewsChainsMethod осуществляет поиск минимальной выпуклой оболочки по точкам рисунка и рендерит ее с задержкой, переданной в параметре delay.
Изначально находится точка с минимальной координатой по оси Ox - leftmost (также для определения более левой точки используется функция orientation для определения поворота алгоритма относительно плоскости. Далее следует инициализация начальной точки
минимальной выпуклой оболочки (она равна leftmost), а также массива hull, в котором будут хранится в дальнейшем все точки оболочки.
Далее, начиная с самой левой нижней точки, движемся по часовой стрелке добавляя точки к нашей оболочке, пока не вернемся к начальной. Этот функционал реализован в функции drawShell, здесь же задается задержка отрисовки линий оболочки.