В первом практикуме вы научитесь сглаживать замкнутую плоскую кривую с помощью потока кривизны. Во-первых, нужно реализовать все методы (где `raise NotImplementedError`) класса curve_transform в приложенном файле curvature_flow.py. Конструктор класса принимает на вход кривую в виде массива двумерных векторов (т.е. пар чисел). В комментариях к методам указано, что они должны делать. Их можно условно разбить на три группы: - previous_edge, next_edge, turning_angle, curvature, N, kN - возвращают соответствующие свойства кривой в данной вершине - flow считает поток кривизны, transform преобразует кривую - is_round, mass_center, total_curvature возвращают соответствующие свойства кривой. Вы не обязаны пользоваться данной заготовкой, а также можете менять её по своему разумению. У меня заготовка + решение заняли полтора часа. Уверен, вы справитесь быстрее! Во-вторых, нужно на различных кривых проверить, какие из трёх свойств сохраняются какими определениями кривизны (выбор определения задаётся переменной curvature_definition). В-третьих (опционально), можно визуализировать преобразования кривых с помощью, например, matplotlib, jupyter или чего-то подобного. Дедлайн - 2 октября.