Files
Learn_System/.claude/memory/project_stereo3d_improvements.md
Maxim Dolgolyov 8a7091ddec chore(memory): снимок файлов памяти Claude в репозиторий для переноса
Копия пользовательской автопамяти (29 фактов + индекс MEMORY.md) в
.claude/memory/, чтобы переносить между машинами через git.
README.md — как восстановить в пользовательскую папку на другой машине.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 08:32:16 +03:00

3.6 KiB
Raw Permalink Blame History

name, description, metadata
name description metadata
project_stereo3d_improvements Симуляция «Стереометрия 3D» — итог ревью+апгрейда (5 фаз) и deep-link конвенция для учебников
node_type type originSessionId
memory project e04a2ab1-2fce-4387-9ec4-7f3f2fb6d65c

Симуляция Стереометрии 3D (frontend/js/labs/stereo.js, класс StereoSim на Three.js, панель #sim-stereo в lab.html) прошла ревью и апгрейд в 5 фаз (май 2026, коммиты 8af8596…ccfb611):

  • Фаза 0: render-on-demand (_invalidate/_needsRender, loop засыпает), _pauseAllSims() в lab-init паузит фоновые rAF-симы при переключении, pointer/touch на canvas с capture, webglcontextlost+dispose(), рекурсивный _clearGroup.
  • Фаза 1: инерция орбиты, pan (ПКМ/СКМ/Shift, 2 пальца), overlay-тулбар (сброс/пресеты Изо·Спереди·Сбоку·Сверху/спин/fullscreen/скриншот PNG).
  • Фаза 2: аналитические сечения кривых _sliceCurvedByNormal() (окружность/эллипс вместо сэмплинга), _edgePickNDC() пикинг рёбер, HiDPI _makeTextSprite.
  • Фаза 3: live-readout overlay #stereo-readout (тип/S/P/измерение через info().readout), _raycastFace() точки на гранях, подписи вершин сечения K,L,M…
  • Фаза 4: подписи осей X/Y/Z, свечение вершин, контраст рёбер.
  • Фаза 5: deep-link + клавиатура (a11y).
  • Фаза 6 (3801d0c): построение сечения «по следам» (метод следов), путь (b) — надёжный полигон + аналитический след _traceLine() (π∩основание y=0) и вспом. точки _auxiliaryPoints() (продление сторон до следа). Настоящий пошаговый _drawSection3PStep (6 подписанных шагов, финал скрыт до шага 5), подписи в #sect3p-hint. Только тела с основанием (_hasBase: куб/параллелепипед/призма/пирамида/усеч.пир/тетраэдр). Включается тумблером «Пошагово» в блоке «Сечение через 3 точки» + кнопки Вперёд/Назад.

Deep-link фигуры из учебников (не очевидно из кода): открыть конкретное тело можно через openSim('stereo:<figure>') ИЛИ ссылкой /lab?stereofig=<figure>#sim/stereo. Допустимые <figure>: cube, parallelepiped, prism, pyramid, truncpyramid, tetrahedron, octahedron, icosahedron, dodecahedron, cylinder, cone, trunccone, sphere. Сделано без правки общего hash-роутера (lab-glue.js) намеренно.

Бэклогplans/STEREO_3D_IMPROVEMENT.md): дробление 3900-строчного файла на модули (отложено пользователем); полное «построение сечения по следам»; подсветка грани по ховеру (нужен точный raycast логических граней, не centroid); zoom-to-cursor; readout углов; градиентный фон в скриншоте.

Правило проекта: при правке stereo.js поднимать ?v=N у <script src="/js/labs/stereo.js?v=N"> в lab.html. См. feedback_sims_admin_sync, feedback_no_emoji.