Files
Learn_System/plans/textbooks-9/PLAN.md
T
Maxim Dolgolyov 995661158b docs(plans): добавлен план реализации Алгебры 9 + Геометрии 9
Полный план по учебникам Беларуси 2019:
- Algebra_Arefieva_9kl_rus_2019.pdf (4 главы, 19 §)
- Geometriya_Kazakov_9kl_rus_2019.pdf (4 главы, 16 §)

Порядок реализации: сначала вся Алгебра 9 (Phases 0-5),
затем вся Геометрия 9 (Phases 6-11).

Включает:
- Полное содержание каждой главы с ключевыми формулами
- SVG-стандарт качества (хелперы regularPoly, rightAngle,
  angleArcAuto, tickMarks, arrow, axes2D, plotFunc)
- Типы SVG по темам для каждого учебника
- Правила drag-интерактивов из опыта Геом 8
- Phase-by-phase порядок реализации (11 phase)
- Структура каждой главы (Wave 0 skeleton, Wave 1-N §, Wave финал)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 23:39:29 +03:00

300 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# План реализации: Алгебра 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-х сторон |
| Правильные многоугольники (§§1316) | 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).