# План реализации: Алгебра 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).
