Копия пользовательской автопамяти (29 фактов + индекс MEMORY.md) в .claude/memory/, чтобы переносить между машинами через git. README.md — как восстановить в пользовательскую папку на другой машине. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.6 KiB
name, description, metadata
| name | description | metadata | ||||||
|---|---|---|---|---|---|---|---|---|
| project_stereo3d_improvements | Симуляция «Стереометрия 3D» — итог ревью+апгрейда (5 фаз) и deep-link конвенция для учебников |
|
Симуляция Стереометрии 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.