Skip to content
View SkorEgor's full-sized avatar

Block or report SkorEgor

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
SkorEgor/README.md

👋 Egor / Егор

Languages and Tools / Языки и Инструменты





Содержание / Интересные проекты

Interesting Project С++ / Интересные проекты С++

Отрисовка графиков в Picture Control MFC. Класс "Drawer.h" создан для удобной/простой отрисовки графиков в Picture Control, библиотеки MFC.









Пример работы с Gdi и событием таймера "OnTimer" для создания анимации графика

Программа позволяет строить, запускать и приостанавливать анимацию. Cобытие Timer, генерирует вызов функции перерисовки с заданным интервалом.







Отрисовка трехмерной цветной фигуры в OpenGl и реализация вращения

В программе заданы плоскости куба, с раскраской граней. Сделан поворот фигуры по клавишам стрелок.



Проект моделирует полет маленького мяча через отверстие в стене так, чтобы он попал в лунку, учитывая сопротивление воздуха с силой, зависящее от скорости в квадрате.

  • Расчет траектории не возможен аналитически.
  • Расчет траектории производится методом Рунге-Кутты 4-го порядка





Анимация движения маятника с учетом трения о воздух и в подшипнике.

Программа имеет 2 режима

  1. Анимации движения маятника и фазовой траектории
  2. Исследовательский, отрисовки нескольких фазовых траекторий с разными параметрами - фазовый портрет.

В программу входит

  1. Класс Task1-Endulum_2Dlg - обрабатывает интерфейс и вызывает обработку/отрисовку данных
  2. Класс RungeKutta_method - хранит и расчитывает следующее положение маятника методом Рунге-Кутты 4-го порядка
  3. AnimationFlow.cpp и AnimationFlowPortrait.cpp - потоки на основе WINAPI запускающее динаическую отрисовку положения маятника или его фазового портета, соответсветнно
  4. Drawer - отрисовывает данные через Gdi



Анимация эволюции волнового пакета в трехмерном пространстве, квантовой механики

В программу входит

  1. Класс Task1-Endulum_2Dlg - обрабатывает интерфейс, хранит данные, вызывает обработку/отрисовку данных
  2. Класс GridSweepMethod - расчитывает следующие значения волновой функции, методамом линеризации, неявной разностной схемы и сеточной прогонки
  3. AnimationFlow - поток на основе WINAPI запускающее динаическую отрисовку данных
  4. Drawer - отрисовывает в 2d данные через Gdi
  5. painter - отрисовывает в 3d график, с учетом его поворотов. Перебирая все точки-> групирует в полигоны и отрисовыввает



Оконное приложене позволяющее производить шифрование и дешифрование, алгоритмами: XOR, RSA, DES.

О проекте

  1. Проект разбит на классы, выполняющие функцию шифрование
  2. Алгоритмы реализованы без библиотек, самостоятельно
  3. Текст можно вводит в соответствующее поле или загружать из папки
  4. Сохранение полученного текста в виде файла, выбрав путь с помощью окна обозревателя

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









Interesting Project Kotlin and Android / Интересные проекты Kotlin и Android

Android приложение для управления роботом по bluetooth, при помощи кнопок. Каждая кнопка отсылает свой символ, при зажатом состоянии автоматически отправляются символы с задержкой в 20 мс. Поддержание подлкючения и повторная отправка символов, при зажатой кнопки обеспечивается отдельными классами отнаследованными от класса потока "Thread".

Алгоритм работы с приложением

  • Зайти в настройки телефона, во вкладе bluetooth добавить новое устройство;
  • Открыть приложение;
  • Нажать кнопку «BLUETOTH CONTROL»;
  • Установить связь с устройством a. В правом верхнем углу. Нажать на значок bluetooth b. В появившемся списке выбрать нужное устройство
  • Начать управление, нажимая или зажимая кнопки







Interesting PYTHON Project / Интересные проекты на PYTHON

Дипломная работа бакалавриата

Тема: "Развитие метода автоматизации обработки спектроскопических данных, полученных с использованием спектрометра с фазовой манипуляцией воздействующего на газ излучения"

Применение спектрометров высокого разрешения позволяет проводить компонентный анализ газовых смесей, в том числе в режиме реального времени.

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

При определенном параметре сигнала вещество создает отклик, который и нужно находить. Для примера сравним данные полученный со спектрометра без вещества и веществом, правее частоты 22340 МГц имеется особенность, появляющаяся в результате взаимодействия вещества с нестационарным излучение. Центр этого участка ( 22340.8 МГц ) – линия поглощения (которую требуется искать) конкретного вещества (выделено зеленым). Максимальное отклонение на этом участке (22339.31-22342.00 МГц) отно-сительно сигнала без газа значительно больше, чем на остальных участках

Метода абсолютной разницы между рассматриваемыми

Программа на основе Метода абсолютной разницы между рассматриваемыми данными

Программа для нахождения особых точек (линий поглощения) в сигнале/данных с шумом, полученных со спектрометра.

Алгоритм обработки

  1. Получение положительной разности, между спектрами с газом и без газа (Получение синего графика)
  2. Вычисление и построение порогового значения, как процент от максимальной разницы (Получение красного графика)
  3. Находим координаты линий поглощения
    1. Интервалы выше порога считаем участками с линией поглощения (График 1. Участок зеленый)
    2. Находим максимальное значение на участках -> ему соответствует координата линии поглощения

  • Программа имеет широкий функционал и обработку ошибок
  • Программа имеет темную и светлую тему
  • Для ускорения вычислений обработка данных написана на pandas и numpy
  • Отрисовка графиков с помощью matplotlib
  • Интерфейс разработан через Qt Designer











Программа для тестирования и сбора статистики Метода абсолютной разницы между рассматриваемыми данными

Для оценки работы приложения Test-Difference было разработано специальное программное обеспечение для проведения тестов в автоматическом режиме.

Цель программы тестировщика - Вывести статистику, вида:

   всего_верных_частот  найденных_частот  правильно_найденных  .
0                 51.0              31.0                 21.0  .
1                 51.0               2.0                  2.0  .
2                 51.0               1.0                  1.0  .
3                 51.0               1.0                  1.0  .
  • Полученная статистика позволит судить об эффективность и наилучшем результате





Программа генерирует или загружает картинку, накладывает шум и проводит метод фильтрации. Метод основа на преобразовании Фурье, получении спектра, удаление значений с малой энергией и восстановлении. Позволяя оценить работу метода и сравнить исходное с восстановленное изображение

Алгоритм

  1. Ввод данных. Генерация Гауссовых куполов / Загрузка изображения, перевод в оттенки серого
  2. Добавление шума.
  3. Получение спектра. Так как используется быстрое Фурье преобразование в программе предусмотренно автоматическое доведение до степени 2 интерполяцией или дополнением нулями.

  1. Отображать будем модуль спектра
  2. Находим область с заданной энергией
  3. Все что не в области, в исходном комплексном спектре зануляется
  4. Берем обратное фурье преобразование, аналогичное прямому







Программа генерирует поле кнопок по заданным размерам. Каждая кнопка это ячейка куда можно поставить антенну. После обработки получаем значения интенсивности на сфере (в виде проекции на плоскость) в виде 3d и 2d графика









Программа реализовывает интересные особенности

  1. Вызов модального окна с последующим возвратом значения
  2. Использование кастомного lable, на заднем фоне сетка, на переднем можно рисовать график. lable имеет функцию перевода графика в массив.

Для проверки корректности перевода, в модальном окне предусмотрено отображение массива в виде графика

Вы можете использовать модальное окно с lable в своих проектах

Инструкция по использованию













Программа загружает картинку и редактирует ярость, с помощью одного из предложенных методов

МЕТОДЫ

  1. Линейная растяжка гистограммы
  2. Нормализация гистограммы
  3. Линеаризация или эквализациии гистограммы
  4. Общий случай



Особенное внимание стоит обратить на ввод линейной гистограммы

Через задание уравнения

Пользователь вводит функцию вида f(x) и программа отображет её в качестве линейной гистограммы (Рис.5)

  1. Для равномерного распределения: x
  2. Для прямолинейно убывающего распределения: (-1/2)*x+125
  3. Для экспоненциального распределения: exp(x*0.02)
  4. Для гиперболического распределения: 2500 / (x+15)



Через рисование

  1. Пользователь выбирает режим - нажатием на кнопку
  2. Появляется модальное окно с возможностью рисовать вверхем виджете и кнопками рисовать, препросмотр
  3. Для выхода из окна и переноса данных - клавиша "Ok"
  4. Полученные данные отображаются в качестве линейной гистограммы (Рис.5), и участвуют в последующей обработке

Pinned Loading

  1. simple_line_graph simple_line_graph Public

    Python 1