chore(sim-builder): план фичи (8 фаз) — конструктор симуляций
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# Phase 1: Графики + интеракции
|
||||
|
||||
**Status:** ⬜ Not Started
|
||||
**Parent plan:** [PLAN.md](./PLAN.md)
|
||||
**Domain:** frontend
|
||||
|
||||
## Objective
|
||||
Добавить в рантайм графики (plot-объекты), перетаскиваемые ручки (drag → параметр),
|
||||
векторы и числовые readout. После фазы спека со слайдером, draggable-точкой и live-графиком работает.
|
||||
|
||||
## Tasks
|
||||
- [ ] Plot-объект в спеке: `{ type:'plot', expr:'...', var:'x', range:[a,b], samples, trace? }` —
|
||||
рисует график выражения; `trace:true` — накапливает след по `t`. Переиспользовать `_graph_panel.js` (посмотреть API).
|
||||
- [ ] Draggable-ручка: объект/маркер с `drag:{ param:'<name>', axis:'x|y|xy', min,max }` — перетаскивание мышью/тачем меняет параметр (и наоборот, позиция следует за параметром). Хит-тест в мир-координатах.
|
||||
- [ ] Readout: `{ type:'readout', label, expr, unit, precision }` — живое значение выражения как текст/бейдж.
|
||||
- [ ] Vector-объект с привязкой к (origin, dx, dy)-выражениям + стрелка.
|
||||
- [ ] Тач-поддержка drag (pointer events), не ломая существующую логику доски/лабы.
|
||||
- [ ] Обновить демо-спеку: добавить слайдер, draggable-точку, plot + readout.
|
||||
|
||||
## Files to Modify/Create
|
||||
- `frontend/js/labs/_sim_engine.js` — типы plot/readout/vector, drag-интеракции (modify)
|
||||
- `frontend/js/labs/_sim_demo.js` — расширить демо (modify)
|
||||
|
||||
## Acceptance Criteria
|
||||
- Перетаскивание ручки меняет параметр; зависимые объекты/график обновляются.
|
||||
- График строится по выражению; trace накапливает след во времени.
|
||||
- Readout показывает живое значение. Тач работает.
|
||||
|
||||
## Notes
|
||||
- Drag не должен конфликтовать с pan/zoom рантайма (если есть). Приоритет хит-теста — ручки.
|
||||
- Сэмплинг графика разумный (без фриза на больших range).
|
||||
|
||||
## Review Checklist
|
||||
- [ ] Все задачи выполнены
|
||||
- [ ] Drag работает мышью и тачем
|
||||
- [ ] Нет регрессий рантайма Ф0
|
||||
- [ ] Нет эмодзи, стиль проекта
|
||||
|
||||
## Handoff to Next Phase
|
||||
<!-- Заполняет реализатор -->
|
||||
Reference in New Issue
Block a user