diff --git a/plans/textbooks-9/PLAN.md b/plans/textbooks-9/PLAN.md new file mode 100644 index 0000000..eb3b83e --- /dev/null +++ b/plans/textbooks-9/PLAN.md @@ -0,0 +1,299 @@ +# План реализации: Алгебра 9 + Геометрия 9 (Беларусь) + +**Порядок: сначала Алгебра 9, затем Геометрия 9.** + +## 🎯 Источники + +| Книга | Автор | Изд. | Глав | § | Стр. | +|-------|-------|-----|-----|---|------| +| `Algebra_Arefieva_9kl_rus_2019.pdf` | Арефьева И.Г., Пирютко О.Н. | Народная асвета, 2019 | 4 | 19 | 304 | +| `Geometriya_Kazakov_9kl_rus_2019.pdf` | Казаков В.В. | Народная асвета, 2019 | 4 | 16 + 4 «креативная»* | 197 | + +PDF'ы лежат в `g:\Dev\Тесты\Методички\тест_6 класс\Книги\`. + +--- + +## 📕 АЛГЕБРА 9 — содержание + +### Глава 1 «Рациональные выражения» (§§1–5) +| § | Тема | Ключ | +|---|------|---| +| §1 | Рациональная дробь | Определение, ОДЗ | +| §2 | Основное свойство. Сокращение | $\dfrac{AC}{BC}=\dfrac{A}{B}$ | +| §3 | Сложение и вычитание | Общий знаменатель | +| §4 | Умножение и деление | $\dfrac{A}{B}\cdot\dfrac{C}{D}=\dfrac{AC}{BD}$ | +| §5 | Преобразование выражений | Многошаговые упрощения | + +### Глава 2 «Функции» (§§6–9) +| § | Тема | Ключ | +|---|------|---| +| §6 | Функция числового аргумента | D(f), E(f), способы задания | +| §7 | Свойства функции | Возрастание/убывание, нули, знакопостоянство, max/min | +| §8 | Чётные и нечётные | $f(-x)=f(x)$ vs $f(-x)=-f(x)$ | +| §9 | Графики $y=f(x)+b$, $y=f(x±a)$ | Сдвиги вертикальный / горизонтальный | + +### Глава 3 «Дробно-рациональные уравнения и неравенства» (§§10–13) +| § | Тема | Ключ | +|---|------|---| +| §10 | Дробно-рациональные уравнения | Освобождение от знаменателя | +| §11 | Системы нелинейных уравнений | Подстановка / сложение | +| §12 | Длина отрезка. Уравнение окружности | $d=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$, $(x-a)^2+(y-b)^2=R^2$ | +| §13 | Дробно-рациональные неравенства. Метод интервалов | Знаки на интервалах | + +### Глава 4 «Прогрессии» (§§14–19) +| § | Тема | Ключ | +|---|------|---| +| §14 | Числовая последовательность | $a_n=f(n)$, способы задания | +| §15 | Арифметическая прогрессия | $a_n=a_1+(n-1)d$ | +| §16 | Сумма n членов арифметической | $S_n=\dfrac{a_1+a_n}{2}n$ | +| §17 | Геометрическая прогрессия | $b_n=b_1q^{n-1}$ | +| §18 | Сумма n членов геометрической | $S_n=\dfrac{b_1(q^n-1)}{q-1}$ | +| §19 | Сумма бесконечно убывающей | $S=\dfrac{b_1}{1-q}$, $|q|<1$ | + +**Итого**: 19 параграфов, 4 главы. + +--- + +## 📐 ГЕОМЕТРИЯ 9 — содержание + +### Глава I «Соотношения в прямоугольном треугольнике» (§§1–6) +| § | Тема | Формулы | +|---|------|---------| +| §1 | sin, cos, tg, ctg острого угла | $\sin=\dfrac{прот}{гип}$, etc. | +| §2 | Решение прямоугольного треугольника | Все элементы по двум | +| §3 | Тригонометрические формулы | $\sin^2+\cos^2=1$, значения 30°/45°/60° | +| §4 | sin, cos, tg, ctg тупого угла | Единичная окружность, $\sin(180°-\alpha)=\sin\alpha$ | +| §5 | Формулы площади | $S=\frac{1}{2}ab\sin C$, $S_{пар}=ab\sin\alpha$, $S_{4-уг}=\frac{1}{2}d_1d_2\sin\varphi$ | +| §6 | Среднее геометрическое | $h^2=a_1b_1$, $a^2=ca_1$, $b^2=cb_1$ | + +### Глава II «Вписанные и описанные окружности» (§§7–9) +| § | Тема | Ключ | +|---|------|---| +| §7 (= §8 в книге) | Описанная/вписанная окружности треугольника | Серединные ⊥, биссектрисы, $S=pr$ | +| §8 (= §9) | Прямоугольный треугольник | $R=c/2$, $r=(a+b-c)/2$ | +| §9 (= §10) | Вписанные/описанные 4-угольники | Вписанный: $\alpha+\gamma=180°$; описанный: $a+c=b+d$ | + +### Глава III «Теорема синусов, теорема косинусов» (§§10–12) +| § | Тема | Формула | +|---|------|---------| +| §10 (= §12) | Теорема синусов | $\dfrac{a}{\sin A}=2R$, $R=\dfrac{abc}{4S}$ | +| §11 (= §13) | Теорема косинусов | $a^2=b^2+c^2-2bc\cos A$ | +| §12 (= §14) | Формула Герона. Решение треугольников | $S=\sqrt{p(p-a)(p-b)(p-c)}$, медиана $m_c$ | + +### Глава IV «Правильные многоугольники» (§§13–16) +| § | Тема | Ключ | +|---|------|---| +| §13 (= §16) | Правильные многоугольники | $\beta=\dfrac{180°(n-2)}{n}$ | +| §14 (= §17) | Формулы радиусов | $\dfrac{a}{2}=R\sin\dfrac{180°}{n}=r\tan\dfrac{180°}{n}$ | +| §15 (= §18) | $\triangle$, $\Box$, 6-уг | $a=R\sqrt{3}$, $a=R\sqrt{2}$, $a=R$ | +| §16 (= §19) | Длина окружности и площадь круга | $C=2\pi R$, $S=\pi R^2$, дуга, сектор | + +**Итого**: 16 параграфов, 4 главы (4 «креативная геометрия» оставлены как boss-задачи, не отдельный §). + +--- + +## 🎨 SVG-СТАНДАРТ КАЧЕСТВА + +### Хелперы (вынести в начало каждого ch-файла) + +```js +// 1. Регулярный n-угольник +const regularPoly = (cx,cy,R,n,theta0=-Math.PI/2) => + Array.from({length:n},(_,i)=>{const a=theta0+2*Math.PI*i/n; + return {x:cx+R*Math.cos(a), y:cy+R*Math.sin(a)};}); + +// 2. L-маркер прямого угла (polyline ВНУТРЬ угла) +const rightAngle = (V,uIn,wIn,s=9) => { + const p1={x:V.x+s*uIn.x,y:V.y+s*uIn.y}; + const c ={x:p1.x+s*wIn.x,y:p1.y+s*wIn.y}; + const p2={x:V.x+s*wIn.x,y:V.y+s*wIn.y}; + return `${p1.x},${p1.y} ${c.x},${c.y} ${p2.x},${p2.y}`; +}; + +// 3. Дуга угла с автовыбором sweep +const angleArcAuto = (V,uA,uB,R) => { + const sA={x:V.x+R*uA.x,y:V.y+R*uA.y}; + const eB={x:V.x+R*uB.x,y:V.y+R*uB.y}; + const cross = uA.x*uB.y - uA.y*uB.x; + const sweep = cross>0 ? 1 : 0; + return `M${sA.x},${sA.y} A${R},${R} 0 0,${sweep} ${eB.x},${eB.y}`; +}; + +// 4. Tick-марки равенства (count = число штрихов) +const tickMarks = (p1,p2,count,color="#0891b2") => { /* perp normal */ }; + +// 5. Стрелка вектора +const arrow = (p1,p2,color) => { /* line + arrowhead */ }; + +// 6. Координатная плоскость +const axes2D = (W,H,pad,xmin,xmax,ymin,ymax) => { + // Returns: { svgInner, toX(v), toY(v), unitX, unitY } +}; + +// 7. График функции y=f(x) +const plotFunc = (f,xmin,xmax,toX,toY,color,N=200) => { /* path d */ }; + +// 8. Парабола y=ax²+bx+c с подсветкой вершины +const parabolaPlot = (a,b,c, axes, opts) => { /* ... */ }; +``` + +### Правила (обязательны с §1) + +1. **Вершины полигонов** — только через тригонометрию `(cx + R·cos θ, cy + R·sin θ)`, никаких "магических" координат +2. **Маркер прямого угла** — `rightAngle()` хелпер, L-форма ВНУТРЬ угла, не по кромке +3. **Дуги** — `angleArcAuto()`, sweep по знаку cross product +4. **Tick-марки** — `tickMarks()` через перпендикуляр к сегменту +5. **Подписи вершин** — Unbounded font-weight 800, **снаружи** полигона +6. **ViewBox** с запасом ≥18px для подписей +7. **KaTeX** — все `\\angle`, `\\dfrac`, `\\sqrt` (двойные backslash в JS template literals) +8. **Drag** — `window.addEventListener` + `{passive:false}` + state ВЫШЕ `redraw()`, делегирование через `data-v` +9. **`touch-action:none`** на каждом draggable SVG +10. **Координатная плоскость** — единый стиль (серая сетка, чёрные оси, синие подписи) + +### Типы SVG по темам + +**АЛГЕБРА 9:** +| Тема | Тип SVG | +|------|---------| +| Рациональные дроби (§§1–5) | Формула + схема ОДЗ | +| Функции (§§6–9) | Координатная плоскость с графиком, slider для b/a в $y=f(x)+b$ | +| Чётные/нечётные | Симметрия графика, отражение | +| Дробно-рациональные уравнения (§10) | Числовая прямая с разрывами | +| Системы нелинейных (§11) | Координатная плоскость + прямая + парабола/окружность | +| Уравнение окружности (§12) | Окружность с центром и радиусом, slider'ы | +| Метод интервалов (§13) | Числовая прямая с корнями и + / − на интервалах | +| Прогрессии (§§14–18) | Точечная диаграмма (n, $a_n$) + прямая (арифм) / экспонента (геом) | +| Сумма бесконечно убывающей (§19) | Числовая ось с убывающими отрезками | + +**ГЕОМЕТРИЯ 9:** +| Тема | Тип SVG | +|------|---------| +| sin/cos/tg острого (§1) | Прямоугольный треугольник с подписями сторон | +| Решение прямоугольного (§2) | Slider угла + сторон, авто-вычисление | +| Тригонометрические значения 30/45/60 (§3) | 3 эталонных треугольника бок-о-бок | +| Тупой угол (§4) | **Единичная окружность** + подвижная точка, slider угла | +| Формулы площади (§5) | Треугольник с углом α; параллелограмм с диагоналями | +| Среднее геометрическое (§6) | Прямоугольный треугольник + высота к гипотенузе + 2 подобных подтреугольника | +| Описанная/вписанная окружности (§§7–8) | Треугольник + окружность; **анимация построения** через серединные ⊥ / биссектрисы | +| Прямоугольный + окружности (§8) | Прямоугольный треугольник с диаметром-гипотенузой | +| Вписанные/описанные 4-угольники (§9) | Циклический 4-угольник, описанный 4-угольник | +| Теорема синусов (§10) | Треугольник + описанная окружность, формула $a/\sin A=2R$ | +| Теорема косинусов (§11) | Slider угла → одна сторона пересчитывается | +| Формула Герона + медиана (§12) | Slider 3-х сторон | +| Правильные многоугольники (§§13–16) | Slider $n=3..12$, вписанная и описанная окружности с общим центром | + +--- + +## 🚀 ПОРЯДОК РЕАЛИЗАЦИИ (Алгебра → Геометрия) + +### Phase 0: **Архитектура** (фундамент) +- `algebra_9_hub.html` skeleton +- `algebra_9_ch1.html` .. `algebra_9_ch4.html` skeletons (CSS, секции, stubs) +- Миграция 020+ для добавления в каталог +- `/js/textbook_svg.js` с хелперами (или inline) + +### Phase 1: **Алгебра 9 Глава 1** «Рациональные выражения» (5 §) — ~3 волны +Простая формульная глава, разогрев. + +### Phase 2: **Алгебра 9 Глава 2** «Функции» (4 §) — ~3 волны +Очень визуальная — графики, slider'ы сдвигов. Закладываем `axes2D()` и `plotFunc()`. + +### Phase 3: **Алгебра 9 Глава 3** «Дробно-рациональные уравнения и неравенства» (4 §) — ~3 волны +Метод интервалов, уравнение окружности → координатная плоскость в действии. + +### Phase 4: **Алгебра 9 Глава 4** «Прогрессии» (6 §) — ~4 волны +Финал алгебры. Точечные графики, анимация суммирования. + +### Phase 5: **Алгебра 9 финал** — итоговая шпаргалка + 7 интегр. боссов + ачивка +Переход к геометрии. + +### Phase 6: **Геометрия 9 архитектура** +- `geometry_9_hub.html` +- `geometry_9_ch1.html` .. `geometry_9_ch4.html` skeletons +- Миграция + +### Phase 7: **Геометрия 9 Глава 1** «Соотношения в прямоугольном треугольнике» (6 §) — ~4 волны +SVG-тяжёлая. Закладываем стандарт качества для всей геометрии. + +### Phase 8: **Геометрия 9 Глава 2** «Вписанные и описанные окружности» (3 §) — ~2 волны +Циклические/описанные фигуры с построениями. + +### Phase 9: **Геометрия 9 Глава 3** «Теорема синусов/косинусов» (3 §) — ~2 волны +Произвольные треугольники + описанная окружность. + +### Phase 10: **Геометрия 9 Глава 4** «Правильные многоугольники» (4 §) — ~3 волны +Slider n=3..12. + +### Phase 11: **Геометрия 9 финал** — шпаргалка + 7 интегр. боссов + ачивка + +--- + +## 📦 Структура каждой главы (стандарт) + +### Wave 0 главы — skeleton +- CSS (палитра 3 цветовых акцента на §) +- Sections со stub-builders +- Hub-карточка обновляется +- Миграция в БД + +### Wave 1-N главы — наполнение § (по 2-3 § на волну) +**Каждый § содержит:** +- 3 теоретических карточки с SVG (`theory`, `rule`, `example`) +- 4-6 интерактивов: + 1. **SVG-конструктор** (slider / drag) + 2. **Пошаговое доказательство** (4-6 шагов с SVG) + 3. **Калькулятор** (форма ввода → ответ) + 4. **DnD-сортер** + 5. **Тренажёр** (5 задач с inline SVG-диаграммами в `q:`) + 6. **Босс §** (4 задачи на интеграцию +5 XP каждая) +- Пополнение глоссария +- jsdom-тест проходит + +### Wave финал главы +- **Итоговая шпаргалка** — mini-cards с SVG-иконкой и формулой на § +- **Карта связей** — интерактивная SVG-схема концепций +- **7 интегрированных боссов** — каждый требует ≥2 темы, +10 XP +- **Achievement** «Мастер главы N» + 50 XP бонус + confetti +- **Кнопка** перехода к следующей главе/учебнику + +--- + +## 📊 Оценка объёма + +| Учебник | § | Ожидаемый LOC | +|---------|---|---| +| Алгебра 9 | 19 | ~22 000 | +| Геометрия 9 | 16 | ~26 000 (SVG-тяжёлая) | +| **Итого** | **35** | **~48 000 LOC** | + +Для сравнения: Геометрия 8 = 56 § + 4 финала = ~26 376 LOC. Здесь меньше §, но глубже на §. + +--- + +## ⚠️ Критические правила (на основе опыта Геом 8) + +### ❌ НЕ делать +- `setPointerCapture` (теряется после `innerHTML` replace) → используем `window` listeners + state-flag +- `\angle` без удвоения в JS template literals → всегда `\\angle` +- Slider range за пределы математически возможного → проверяем формулы заранее +- `√` в JS строках → пишем символы `√` напрямую +- Арки `sweep=1` без проверки направления → используем `angleArcAuto()` +- Вершины полигона "на глаз" → всегда тригонометрия +- Tick-марки в произвольных местах → через `tickMarks()` хелпер + +### ✅ Обязательно +- Каждый коммит → jsdom-тест 100% pass +- Аудит SVG-геометрии перед каждым commit +- KaTeX-эскейпы через grep после каждого Wave +- Drag всегда использует state ВЫШЕ `redraw()` +- Координаты пересчитываются формулами +- Все builder-функции в registry должны быть НЕ stub'ами в конце Wave финала + +--- + +## 🎬 Запуск + +**Начинаем с Phase 0**: skeleton всех 4 файлов Алгебры 9 + миграция + хелперы. +Потом Phase 1: Глава 1 «Рациональные выражения» — ~3 волны до финала. + +После завершения всей Алгебры 9 (Phase 5) — переходим к Геометрии 9 (Phase 6).