Commit Graph

2 Commits

Author SHA1 Message Date
Maxim Dolgolyov 95cca89dfc feat: планиметрия Phase 2 — инструменты построения
- GeoEngine: система производных объектов (recompute, propagateDeps),
  каскадная цепочка зависимостей при перемещении точек
- 6 новых инструментов в GeoSim:
  * midpoint — середина отрезка (производная точка)
  * perpbisect — серединный перпендикуляр (derived_line)
  * anglebisect — биссектриса угла ABC (derived_line)
  * parallel — параллельная прямая через точку (derived_line)
  * perpendicular — перпендикуляр через точку (derived_line)
  * intersect — точка пересечения двух прямых (производная точка)
- Производные объекты: пунктирный стиль, светящийся ободок,
  автообновление при перемещении родительских точек
- Двухфазный UI для parallel/perpendicular/intersect:
  _pendingLineRef + _drawLineRefHighlight (подсветка первой линии)
- lab.html: 6 новых кнопок в секции "Построения", счётчик построений,
  onHintChange callback для контекстных подсказок

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:00:00 +03:00
Maxim Dolgolyov 35849cf231 feat: планиметрия — интерактивная геометрическая симуляция
- Новый файл frontend/js/labs/geometry.js (~1200 строк):
  GeoEngine (граф объектов с каскадным удалением),
  GeoViewport (система координат math↔canvas, зум/пан),
  GeoSim (полный движок: точки, отрезки, прямые, лучи,
  окружности, треугольники, многоугольники, привязка к сетке
  и точкам, undo/redo, экспорт PNG, classroom sync)
- frontend/lab.html: карточка, ctrl, sim-geometry секция,
  функции geoSetTool/geoToggle/_openGeometry, скрипт-тег
- frontend/admin.html: geometry в ADMIN_SIMS
- backend/src/db/migrate.js: таблицы geometry_tasks,
  geometry_submissions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 09:40:41 +03:00