Skip to content

cryoflamer/wedge

Repository files navigation

Wedge Billiard Phase-Space Explorer

Desktop-застосунок для дослідження фазового портрета клиновидного більярда.

Детальна специфікація й початкове ТЗ винесені в SPEC.md.

Запуск

Вимоги:

  • Python 3.11+
  • залежності з requirements.txt

Встановлення:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Запуск:

python main.py

Або з явним шляхом до конфігу:

python main.py --config config.yaml

Що вміє MVP

  • задавати alpha, beta, N_phase, N_geom
  • підтримувати ввід кутів як десятковим числом, так і виразами типу pi/6, 2*pi/5, pi/2 - pi/6
  • будувати траєкторії кліком по фазовій панелі
  • показувати відповідну геометричну траєкторію в клині
  • програвати replay поступовим промальовуванням
  • експортувати PNG
  • зберігати/завантажувати сесію
  • робити автосейв сесії

Керування

Фазові панелі:

  • клік у допустимій області створює нову траєкторію
  • ліва панель стартує з wall 1
  • права панель стартує з wall 2

Панель (alpha, beta):

  • клік по діаграмі змінює параметри
  • поля праворуч синхронізовані з діаграмою

Права панель:

  • Apply застосовує параметри
  • Enter у полях параметрів працює так само, як Apply
  • Replay Selected, Replay All, Pause, Resume, Step, Reset Replay
  • Export PNG, Save Session, Load Session

Конфіг

Основний конфіг лежить у config.yaml.

app

  • title: заголовок вікна
  • theme: службове поле теми
  • log_level: рівень логування

simulation

  • alpha: кут першої стінки в радіанах
  • beta: кут другої стінки в радіанах
  • n_phase_default: довжина орбіти у фазовому просторі
  • n_geom_default: скільки перших відбиттів показувати в клині
  • eps: чисельний допуск

replay

  • delay_ms: затримка між кадрами replay
  • selected_only_by_default: службовий прапорець режиму replay

export

  • dpi: DPI для PNG
  • default_mode: color або monochrome
  • monochrome_line_styles: резерв під стилі монохромного експорту

view

  • show_grid: службовий прапорець сітки
  • show_labels: службовий прапорець підписів
  • show_directrix: службовий прапорець директриси
  • show_reflection_points: показ точок відбиття
  • phase_point_radius: радіус точок на фазових панелях
  • geometry_point_radius: радіус точок на геометричній панелі

window

  • width: ширина головного вікна
  • height: висота головного вікна
  • x: позиція вікна по X
  • y: позиція вікна по Y

Ця секція автоматично оновлюється при закритті застосунку.

autosave

  • enabled: чи ввімкнений автосейв
  • path: шлях до файлу автосейву

Якщо шлях відносний, він рахується від директорії, де лежить config.yaml.

regions

Список областей для панелі (alpha, beta). Зараз може бути порожнім.

Сесії

Ручне збереження:

  • кнопка Save Session

Ручне завантаження:

  • кнопка Load Session

Автосейв:

  • записується автоматично при зміні стану й при закритті вікна
  • при старті застосунок намагається відновити сесію з autosave.path

У сесії зберігаються:

  • alpha, beta
  • N_phase, N_geom
  • список траєкторій
  • visible
  • color
  • вибрана траєкторія

PNG export

Кнопка Export PNG створює набір файлів:

  • весь layout
  • phase_wall_1
  • phase_wall_2
  • wedge
  • angle

Режим експорту береться з config.export.default_mode.

About

Interactive phase-space explorer for wedge billiards in a field, with synchronized orbit visualizations and DSL-like research workflow.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors