Skip to content

Latest commit

 

History

History
69 lines (47 loc) · 3.98 KB

File metadata and controls

69 lines (47 loc) · 3.98 KB

Запуск в Visual Studio

Открывать нужно:

HamiltonMouse\HamiltonMouse.sln

Исходники и файлы решения лежат в этой же папке.

Требования

  1. Visual Studio 2022 с workload Desktop development with C++.
  2. Allegro 5.

Установка Allegro через NuGet

В Visual Studio:

  1. Открыть Project -> Manage NuGet Packages.
  2. Найти пакет Allegro.
  3. Установить основной пакет Allegro версии 5.2.11.3.
  4. Пакет AllegroDeps отдельно ставить обычно не нужно: он подтягивается как зависимость.

Сборка

  1. Открыть HamiltonMouse\HamiltonMouse.sln.
  2. Выбрать Debug | x64.
  3. Запустить Build -> Build Solution.
  4. Запустить Debug -> Start Without Debugging.

Что показывает программа

При запуске программа выводит в консоль линеаризацию системы из задания 1.10 б и тип устойчивости. Сейчас программа делает полный разбор для этой системы: находит стационарные точки, линеаризует систему около каждой точки и выводит тип устойчивости.

Открываются три окна:

  1. Большое окно показывает фазовую траекторию на плоскости (x, y).
  2. Первое маленькое окно показывает график x(t).
  3. Второе маленькое окно показывает график y(t).

Окна стартуют в фиксированном положении: два маленьких слева друг под другом, фазовый портрет справа. В заголовке каждого окна написано, что именно оно показывает. На фазовом портрете стационарные точки отмечены маленькими крестиками.

Клик в большом окне задает начальную точку траектории. Закрыть программу можно клавишей Esc или крестиком на любом из трех окон. Клавиша H скрывает или показывает подписи стационарных точек с координатами. Колесико мыши масштабирует фазовый портрет вокруг курсора. Зажатое колесико мыши двигает фазовый портрет как карту.

Режимы фазового портрета:

  • 1 - исходная нелинейная система.
  • 2 - линеаризованная система около P1.
  • 3 - линеаризованная система около P2.

При смене режима фазовые окна очищаются, чтобы траектории разных систем не смешивались. При масштабировании и сдвиге уже построенные фазовые траектории перерисовываются в новом виде. Во время перемещения фазовый портрет перерисовывается с ограничением частоты кадров, чтобы окно не подвисало на длинных траекториях. События перемещения мыши при pan объединяются, поэтому график должен следовать за курсором без накопленного запаздывания.

Если появляется ошибка:

allegro5/allegro.h: No such file or directory

значит пакет Allegro не восстановился или не установлен через NuGet.