555f701b57
Math6Anim.numberLineJumps — a·b как a прыжков-дуг по b на числовой прямой (зелёные вправо, красные влево, приземление на произведение); ползунки a,b. Math6Anim.coordGame — «поставь точку (x;y)»: клик по узлу сетки, проверка, счёт, при промахе показывает верную точку. План: 3D-тела исключены. Headless-safe. Тесты math6: 20/20. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
14 KiB
14 KiB
Брейншторм: визуализации в КАЖДЫЙ параграф «Математики 6»
Цель: у каждого § — хотя бы одна «показывающая» визуализация/анимация, даже у сугубо вычислительных (столбик, деление уголком, сравнение). Принцип экономии: строить реюзабельные компоненты движка
math6_anim.js/math6_svg.js, каждый из которых закрывает несколько параграфов. Все canvas-демо — headless-safe (как уже сделано).Готово на данный момент (window.Math6Anim):
rollingCircle,sweepArea,areaModel,numberLineWalk,carGraph,plotLive. Ниже — что ещё построить и куда вшить.
A. Реюзабельные компоненты движка (строит Opus — canvas/3D рискованно, нужен браузер-глаз)
| # | Компонент | Что делает | Закрывает § |
|---|---|---|---|
| 1 | stepPlayer (DOM) |
Универсальный пошаговый плеер: кнопки «◀ шаг / шаг ▶», авто-проигрыш, подсветка текущего шага + пояснение. Любой «Разбор по шагам» → интерактив. | ВСЕ §§ (38 шт.) |
| 2 | columnOp (canvas) |
Сложение/вычитание в столбик: выравнивание по запятой, перенос/заём, цифры появляются справа налево, «огонёк» переноса. | 1.4, 4.4, 4.5 |
| 3 | longDivision (canvas) |
Деление уголком: сносим цифры, вычитаем, ставим запятую пошагово; для периодов — подсветка повтора остатка → период. | 1.7, 1.8, 1.9 |
| 4 | commaShift (canvas) |
Запятая физически едет вправо/влево на N разрядов, дорисовываются нули. | 1.5, 1.8 |
| 5 | barModel (canvas) |
Полоса-целое 0…100%, часть закрашивается; связка % ↔ дробь ↔ десятичная. | 2.1, 2.2 |
| 6 | balanceScale (canvas) |
Весы «крест-накрест»: произведение крайних = средних; чаши уравновешиваются. | 2.3, 2.5 |
| 7 | constAreaRect (canvas) |
Прямоугольник постоянной площади: ширина↑ → высота↓ — наглядная обратная пропорция. | 2.4 |
| 8 | pieGrow (canvas) |
Растущие сектора круговой диаграммы; перетаскиваемые границы секторов. | 2.7 |
| 9 | vennDrag (SVG/canvas) |
Перетаскиваемые круги; элементы живо сортируются по областям; ∩/∪ подсветка. | 3.3, 3.4 |
| 10 | setFilter (canvas) |
Числа летят сквозь «фильтр свойства» (чётное, кратно 3…); подходящие падают в множество. | 3.1, 3.2 |
| 11 | thermometer (canvas) |
Столбик термометра ↑↓, ±числа, **` | x |
| 12 | numberLineJumps (canvas) |
Умножение как повторные прыжки (3\cdot(-2) = три прыжка по −2); вычитание = прыжок противоположного. |
4.5, 4.7, 4.8 |
| 13 | coordGame (canvas) |
«Морской бой/клад»: поставь точку по координатам; перекрестье от осей; четверти подсвечиваются. | 5.1 |
| 14 | solid3d + unfoldNet |
ИСКЛЮЧЕНО (по решению). Гл.6 §1 остаётся со статичной SVG-галереей тел + развёртки + квизы. | — |
| 15 | triangleDrag (SVG) |
Тащишь вершину — тип треугольника пересчитывается вживую, штрихи равных сторон и дуги углов обновляются. | 6.3 |
| 16 | reflectFold (canvas) |
Складывание фигуры через ось (осевая симметрия) и поворот на 180° вокруг точки (центральная). | 6.4, 6.5 |
stepPlayer(#1) — самый дешёвый и самый «массовый»: один компонент оживляет все «Разборы по шагам», включая простые дроби/столбик, о которых просил пользователь.
B. Карта «параграф → визуализация»
Глава 1 — Десятичные дроби
- §1 Разряды → анимированная «разрядная лента»: цифры падают в столбцы-разряды (ед., десятые…) с подписями значений; + зум числовой прямой ×10 (десятые→сотые).
- §2 Сравнение/округление → «дуэль по разрядам» (две дроби, разряд за разрядом подсвечивается); округление = точка примагничивается к ближайшему делению.
- §3 Коорд. луч → единичный отрезок делится на 10, маркер скользит к значению. (
numberLine+ анимация маркера.) - §4 Сложение/вычитание →
columnOp: запятая под запятой, перенос/заём по разрядам. - §5 ×/÷ 10,100,1000 →
commaShift: запятая едет, нули дорисовываются. - §6 Умножение →
areaModel✓ + «считаем знаки»: умножили как целые → запятая въезжает. - §7 Деление на натур. →
longDivision(уголок). - §8 Деление на дробь →
commaShift(запятая у обоих) →longDivision. - §9 Конечные/бесконечные →
longDivisionс колесом остатков: повтор остатка → период0,(3). - §10 Преобразования → конвертер дробь↔десятичная (полоса делится / запускается деление).
- §12 Применение → анимированный чек: цены складываются, сдача отсчитывается.
Глава 2 — Проценты и пропорции
- §1 Проценты →
barModel+ сетка 100 клеток, синхронно %/дробь/десятичная. - §2 3 задачи →
barModelпод каждый тип (часть/целое/процент подсвечивается) + анимация блок-схемы выбора типа. - §3 Пропорция →
balanceScale«крест-накрест». - §4 Прямая/обратная → прямая: точки поднимаются по лучу; обратная:
constAreaRect(площадь = const). - §5 Решение пропорцией → стрелки прямой/обратной (обратную «переворачиваем») +
balanceScale. - §6 Масштаб → зум карты до реального размера с линейкой; коэффициент масштаба анимирован.
- §7 Круговые диаграммы →
pieGrow(сектора растут; перетаскивание границ). - §9 Применение → ценник: зачёркивание старой цены, новая; рост вклада столбиком.
Глава 3 — Множество
- §1 Множество/∈/∉/∅ →
setFilter/«вброс элементов»: ∈ светится зелёным, ∉ отскакивает; ∅ — пустой контейнер. - §2 Способы задания →
setFilter: числа сквозь фильтр «чётное/кратно 3», подходящие падают в{…}. - §3 Операции ∩/∪ →
vennDrag: тащишь круги, элементы пересортировываются, ∩/∪ подсветка. - §4 Круги Эйлера →
vennDragс числами в областях; формула|A\cup B|=|A|+|B|-|A\cap B|показывает «общие посчитаны дважды».
Глава 4 — Рациональные числа
- §1 ±числа/коорд. прямая →
thermometer(тепло/холод, лево/право от 0). - §2 Модуль/противоположные →
thermometer/зеркало:|x|как измеренное расстояние до 0;aи-aотражаются. - §3 Сравнение → «дуэль» на числовой прямой (правее = больше; из двух отриц. ближе к 0).
- §4 Сложение →
numberLineWalk✓. - §5 Вычитание →
numberLineWalkс переворотомb\to -bперед шагом (a-b=a+(-b)). - §6 Законы → перегруппировка: слагаемые меняются местами / группируются, противоположные взаимно гасятся (
a+(-a)\to0). - §7 Умножение →
numberLineJumps(повторные прыжки) + таблица знаков с подсветкой. - §8 Деление → знаки (как умножение) + «разбиение на группы».
- §9 Все действия →
stepPlayerс подсветкой «какое действие считается сейчас» (скобки→×÷→+−).
Глава 5 — Координатная плоскость
- §1 Декартова система →
coordGame(поставь точку/найди клад; четверти подсвечиваются). - §2 Графики процессов →
carGraph✓ (+ можно «температура за день»). - §3 y=kx / y=k/x →
plotLive✓.
Глава 6 — Наглядная геометрия
- §1 Тела/развёртки → без 3D-анимации (исключено): статичная SVG-галерея тел + развёртки + квизы «грани/рёбра/вершины» и «какое тело из развёртки» (уже есть).
- §2 Окружность/круг →
rollingCircle+sweepArea✓. - §3 Виды треугольников →
triangleDrag(тащишь вершину — тип пересчитывается). - §4 Центральная симметрия →
reflectFold(поворот на 180° вокругO). - §5 Осевая симметрия →
reflectFold(складывание через ось, как лист бумаги).
C. Дополнительные идеи (сверх программы)
- «Карта прогресса» на хабе: тропа из 6 узлов-глав, заполняется по мере прохождения; маскот/питомец ведёт по пути (синхрон с pet.html).
- Микронаграды: стикеры за серию верных ответов; конфетти на боссах (есть).
- «Сравни себя»: таймер на тренажёре + личный рекорд (localStorage).
- «Покажи решение»:
stepPlayerвсплывает после ответа в любом тренажёре. - Звук (Web Audio): щелчок переноса в столбике, «дзынь» на верном ответе — опционально, с учётом mute/reduced-motion.
- Тёмная тема для canvas — уже через cssVar; проверить контраст.
- Доступность:
prefers-reduced-motion→ статичный кадр (уже в движке); aria-подписи к canvas.
D. Подход к раскатке
- Opus строит реюзабельные компоненты (раздел A) — это canvas/3D, риск, нет авто-визуальной проверки, нужен headless-guard + тест «монтируется». Сделано:
stepPlayer,thermometer,plotLive,carGraph,rollingCircle,sweepArea,areaModel,numberLineWalk. Остаток приоритетно:numberLineJumps→coordGame→triangleDrag→reflectFold→barModel/pieGrow→vennDrag/setFilter→balanceScale/constAreaRect. (3D-тела исключены.) - Sonnet-воркфлоу вшивает компоненты в §§ по карте (раздел B), по главе на агента, через
if(window.Math6Anim){…}, с само-проверкой тестом (как делали при обогащении). - Каждый компонент → запись в тест «canvas-демо монтируются (headless-safe)».
Эталоны headless-safe и паттерн вшивания см. в project_math6_textbook.