Открывать нужно:
HamiltonMouse\HamiltonMouse.sln
Исходники и файлы решения лежат в этой же папке.
- Visual Studio 2022 с workload Desktop development with C++.
- Allegro 5.
В Visual Studio:
- Открыть
Project -> Manage NuGet Packages. - Найти пакет
Allegro. - Установить основной пакет Allegro версии
5.2.11.3. - Пакет
AllegroDepsотдельно ставить обычно не нужно: он подтягивается как зависимость.
- Открыть
HamiltonMouse\HamiltonMouse.sln. - Выбрать
Debug | x64. - Запустить
Build -> Build Solution. - Запустить
Debug -> Start Without Debugging.
При запуске программа выводит в консоль линеаризацию системы из задания 1.10 б и тип устойчивости. Сейчас программа делает полный разбор для этой системы: находит стационарные точки, линеаризует систему около каждой точки и выводит тип устойчивости.
Открываются три окна:
- Большое окно показывает фазовую траекторию на плоскости
(x, y). - Первое маленькое окно показывает график
x(t). - Второе маленькое окно показывает график
y(t).
Окна стартуют в фиксированном положении: два маленьких слева друг под другом, фазовый портрет справа. В заголовке каждого окна написано, что именно оно показывает. На фазовом портрете стационарные точки отмечены маленькими крестиками.
Клик в большом окне задает начальную точку траектории.
Закрыть программу можно клавишей Esc или крестиком на любом из трех окон.
Клавиша H скрывает или показывает подписи стационарных точек с координатами.
Колесико мыши масштабирует фазовый портрет вокруг курсора.
Зажатое колесико мыши двигает фазовый портрет как карту.
Режимы фазового портрета:
1- исходная нелинейная система.2- линеаризованная система околоP1.3- линеаризованная система околоP2.
При смене режима фазовые окна очищаются, чтобы траектории разных систем не смешивались. При масштабировании и сдвиге уже построенные фазовые траектории перерисовываются в новом виде. Во время перемещения фазовый портрет перерисовывается с ограничением частоты кадров, чтобы окно не подвисало на длинных траекториях. События перемещения мыши при pan объединяются, поэтому график должен следовать за курсором без накопленного запаздывания.
Если появляется ошибка:
allegro5/allegro.h: No such file or directory
значит пакет Allegro не восстановился или не установлен через NuGet.