Skip to content

NotnaKO/pylabs

Repository files navigation

Добро пожаловать!

Меня зовут Копанов Антон(Б05-206), и это мой проект по python, в котором я решил написать модуль, позволяющий удобно рисовать графики для лабораторных работ по физике.

Мои цели:

  • Создать инструмент для работы, который взял бы на себя большую часть работы по построению графиков, моделей для аппроксимации
  • Сделать проект универсальным, то есть покрыть как можно больше функций, которые могут пригодиться в работах, и сделать модуль легко изменяемым.
  • Сделать свой код разнообразным и попробовать много инструментов, которые предоставляет python.

Реализация

Необходимые действия для запуска

  1. Установить python версии не ниже 3.10.
  2. Установить пакеты из requirements.txt.
  3. Использовать проект, пример показан в main.py

Примечание

При запуске по умолчанию используется ввод с (аппроксимации описаны ниже в части про analyzer.py). В main.py есть пример, как делать запуск с помощью программы.

Описание поведения

В проекте используется паттерн Visitor, поэтому все операции реализуются через посещение объектов объектом класса Visitor. Это позволяет сделать операции унифицированными.

abstract_work.py

В файле реализованы классы Visitor и Worker. Visitor содержит поля с данными, которые нужны в работе и метод visit для посещения объектов класса Worker. Класс Worker - это абстрактный класс, от которого наследуются все остальные объекты, посещаемые Visitor. Этот класс имеет метод accept, который должны переопределять наследники.

input_manager.py

Класс InputManger используется для ввода данных от пользователя. Поскольку цель проекта сделать возможности, как можно больше. Реализованы три способа ввести данные: через консоль, через файл .txt, и через передачу данных, как аргументов функции. Рекомендуется использовать последний, как наиболее удобный. Класс заполняет поля visitor при посещении.

analyzer.py

Класс Analyzer используется для построения аппроксимаций к данным. На данный момент доступны три вида аппроксимаций: linear, polynomial, any.

  • linear: Аппроксимация прямой
  • polynomial: Аппроксимация полиномом(есть параметр degree, которым можно указать степень полинома)
  • any: Аппроксимация сплайном Акимы(значения x должны быть различны).

plotter.py

Класс Plotter рисует полученные данные. Кроме обычных точек, он также умеет рисовать кресты ошибок.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages