✔️ Реализовано, 🔥 в работе, свободно
######Задачи:
- 🔥 Доделать ограничения
- Реализовать разбиение графа на связные подграфы
- ✔️ Реализовать улучшенный вариант функции поиска:
✔️ 1) Реализовать выбор шага движения по градиенту
2) Реализовать другой способ движения по графику
✔️ 3) Ещё другой способ движения по графику - ✔️ Графический интерфейс
- 🔥 Консольный интерфейс
- 🔥 Сохранение в разные типы файлов
- 🔥 Загрузка из разных типов файлов
- ✔️ Реализовать хранение ограничений
- ✔️ Реализовать индивидуальную нумерацию всех объектов
- ✔️ Функции выбора объекта/ов
- ✔️ Функции добавления ограничений и объектов
- ✔️ Удаление объектов и ограничений
- Добавить в архитектуру другие примитивы (прямая / часть дуги окружности / ...)
- ✔️ Возможность выбора изменяемых и неизменяемых(константных) параметров
- ...
######Сверхзадачи
- Реализовать возможность добавления сложных объектов в виде комбинации примитивов и ограничений для них
- Undo/Redo Возможность отмены/повтора предыдущего действия
- 🔥 Стилизованный графический интерфейс с большим функционалом
- Написать развернутые комментарии к коду, объяснения алгоритмов
- ...
#####Список обьектов:
- ТОЧКА
- ОТРЕЗОК
- ОКРУЖНОСТЬ
######Базовые ограничения:
- ✔️ Расстояние между двумя точками (x1, y1, x2, y2, d)
- ✔️ Отношение расстояния между парами точек (x1, y1, x2, y2, x3, y3, k)
- ✔️ Угол между двумя прямыми, посторенными через 2 точки (x1, y1, x2, y2, x3, y3, x4, y4, a)
- ✔️ Расстояние от точки до прямой, построенной через 2 точки (x, y, x1, y1, x2, y2, d)
- ✔️ Касание окружностей (внутреннее, внешнее) (x1, y1, r1, x2, y2, r2)
- ✔️ Три точки лежат на одной прямой (x1, y1, x2, y2, x3, y3)
- ✔️ Расстояние от точки до отрезка (частный случай - принадлежит отрезку) (x, y, x1, y1, x2, y2, d)