Files
Learn_System/plans/textbooks-10/PLAN_PHYSICS_10.md
T
Maxim Dolgolyov 5381679c68 chore: консолидация незакоммиченной работы (биохимия + System Health + lab/textbooks)
Зафиксирована накопленная незакоммиченная работа рабочего дерева, КРОМЕ файлов
учебника «Химия 7» (migration 046, chemistry_7_*.html, chem7_svg.js, тест —
оставлены незакоммиченными по запросу).

Включает: модуль биохимии (ядро BIO, 3D VSEPR, химдвижок, баланс, challenges,
пути из БД), System Health Level 1 (вердикт/мониторинг), а также frontend-
страницы и lab/textbooks-правки параллельной сессии.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 18:12:55 +03:00

425 lines
30 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.
# План реализации: Физика 10 (Беларусь, Громыко, 2019)
**Источник:** `fizika_10kl_gromika_rus_2019.pdf` (267 стр., 2 части, 6 глав, 37 §)
**Издательство:** «Адукацыя і выхаванне», 2019
**Уровень:** базовый + повышенный (с электронным приложением).
> **Самый большой учебник во всём проекте** — 37 параграфов против 19 в Алгебре 9 и 16 в Геометрии 9. Учитывает весь опыт 10 предыдущих учебников: единый KaTeX-эскейп, ноль пикселей в подписях, ноль эмодзи, 3D-движок `g3d.js`, snap-точки в slider'ах, цветовая кодировка, drag-to-rotate. **Главная фишка** — настоящие физические **симуляции**: броуновское движение, изопроцессы (PV-диаграммы), линии поля, электрические цепи, движение заряженных частиц в магнитном поле, явление индукции.
---
## 🎯 Содержание учебника
### Часть 1. МОЛЕКУЛЯРНАЯ ФИЗИКА
**Глава 1. Основы молекулярно-кинетической теории (§§1–10)**
| § | Тема | Ключевые формулы |
|---|------|------------------|
| §1 | Основные положения МКТ | 3 положения: вещество — частицы, частицы движутся, частицы взаимодействуют |
| §2 | Масса и размеры молекул. Количество вещества | $N_A = 6.022 \cdot 10^{23}$, $M = m \cdot N_A$, $\nu = N/N_A = m/M$ |
| §3 | Макро- и микропараметры. Идеальный газ. Основное уравнение МКТ | $p = \dfrac{1}{3} n m_0 \overline{v^2} = \dfrac{2}{3} n \overline{E_k}$ |
| §4 | Тепловое равновесие. Температура | $\overline{E_k} = \dfrac{3}{2} kT$, шкала Кельвина: $T = t + 273$ |
| §5 | Уравнение состояния идеального газа | $pV = \nu RT$, $pV = \dfrac{m}{M} RT$ (Клапейрон–Менделеев) |
| §6 | Изопроцессы | Изотерма $pV = \text{const}$, изобара $V/T = \text{const}$, изохора $p/T = \text{const}$ |
| §7 | Строение и свойства твёрдых тел | Кристаллы (моно-, поликристаллы), аморфные тела, анизотропия |
| §8 | Строение и свойства жидкостей | Поверхностное натяжение, смачивание |
| §9 | Испарение и конденсация. Насыщенный пар | Динамическое равновесие, давление насыщенного пара |
| §10 | Влажность воздуха | $\varphi = \dfrac{p}{p_н} \cdot 100\%$, точка росы, психрометр |
**Глава 2. Основы термодинамики (§§11–15)**
| § | Тема | Ключевые формулы |
|---|------|------------------|
| §11 | Внутренняя энергия | $U = \dfrac{3}{2} \nu R T$ (одноатомный газ) |
| §12 | Работа в термодинамике | $A = p \Delta V$ (изобарный), графически площадь под кривой |
| §13 | Количество теплоты | $Q = cm \Delta T$, $Q = \lambda m$ (плавление), $Q = rm$ (испарение), $Q = qm$ (сгорание) |
| §14 | Первый закон термодинамики | $\Delta U = Q + A_{внеш}$ или $Q = \Delta U + A_{газ}$ |
| §15 | Тепловые двигатели. КПД | $\eta = \dfrac{A}{Q_1} = \dfrac{Q_1 - Q_2}{Q_1}$, $\eta_{Карно} = \dfrac{T_1 - T_2}{T_1}$ |
### Часть 2. ЭЛЕКТРОДИНАМИКА
**Глава 3. Электростатика (§§16–24)**
| § | Тема | Ключевые формулы |
|---|------|------------------|
| §16 | Электрический заряд. Закон сохранения | $q = ne$, $e = 1.6 \cdot 10^{-19}$ Кл, $\sum q = \text{const}$ |
| §17 | Закон Кулона | $F = k \dfrac{|q_1 q_2|}{r^2}$, $k = 9 \cdot 10^9$ Н·м²/Кл² |
| §18 | Электростатическое поле | Силовая характеристика, источник |
| §19 | Напряжённость поля. Принцип суперпозиции | $\vec{E} = \dfrac{\vec{F}}{q_{пр}}$, $\vec{E} = \sum \vec{E_i}$ |
| §20 | Линии напряжённости | Силовые линии, поле точечного заряда, диполя |
| §21 | Работа поля. Потенциал | $A = qU$, $\varphi = \dfrac{W_p}{q}$ |
| §22 | Разность потенциалов. Напряжение | $U = \varphi_1 - \varphi_2$, $E = U/d$ (однородное) |
| §23 | Конденсаторы. Электроёмкость | $C = q/U$, $C = \dfrac{\varepsilon \varepsilon_0 S}{d}$ |
| §24 | Энергия поля конденсатора | $W = \dfrac{CU^2}{2} = \dfrac{q^2}{2C} = \dfrac{qU}{2}$ |
**Глава 4. Постоянный электрический ток (§§25–26)**
| § | Тема | Ключевые формулы |
|---|------|------------------|
| §25 | ЭДС источника тока | $\mathcal{E} = A_{ст}/q$, ЭДС, сторонние силы |
| §26 | Закон Ома для полной цепи | $I = \dfrac{\mathcal{E}}{R + r}$, КПД $\eta = U/\mathcal{E}$ |
**Глава 5. Магнитное поле. Электромагнитная индукция (§§27–33)**
| § | Тема | Ключевые формулы |
|---|------|------------------|
| §27 | Магнитное поле тока | Опыт Эрстеда, взаимодействие проводников |
| §28 | Индукция магнитного поля | $\vec{B}$, правило буравчика, линии индукции |
| §29 | Сила Ампера | $F_A = BIL\sin\alpha$, правило левой руки |
| §30 | Сила Лоренца | $F_L = qvB\sin\alpha$, движение по окружности: $R = \dfrac{mv}{qB}$ |
| §31 | Магнитный поток. Электромагнитная индукция | $\Phi = BS\cos\alpha$, опыты Фарадея |
| §32 | Правило Ленца. Закон ЭМИ | $\mathcal{E}_i = -\dfrac{d\Phi}{dt}$ |
| §33 | Самоиндукция. Индуктивность | $\mathcal{E}_{si} = -L \dfrac{dI}{dt}$, $W_L = \dfrac{LI^2}{2}$ |
**Глава 6. Электрический ток в различных средах (§§34–37)**
| § | Тема | Ключевые формулы |
|---|------|------------------|
| §34 | Ток в металлах. Сверхпроводимость | Свободные электроны, $\rho(T) = \rho_0(1+\alpha t)$ |
| §35 | Ток в электролитах | Электролиз, законы Фарадея: $m = kIt$, $k = \dfrac{M}{F n}$ |
| §36 | Ток в газах. Плазма | Самостоятельный/несамостоятельный разряд, виды разрядов |
| §37 | Ток в полупроводниках | Собственная и примесная проводимость, n-тип, p-тип, p-n-переход |
**ИТОГО:** 6 глав, 37 параграфов, **2 части**.
---
## 🎨 SVG-СТАНДАРТ КАЧЕСТВА ДЛЯ ФИЗИКИ
Это первая физика в проекте — нужны новые хелперы. Унаследует всё от математических учебников + добавляет physics-specific.
### Унаследованные хелперы (из Алгебры 11 / Геометрии 11)
- `axes2D(W, H, pad, xmin, xmax, ymin, ymax)` — координатная плоскость
- `plotFunc(f, xmin, xmax, toX, toY, color, N)` — график функции
- `pointWithDrop(x, fx, toX, toY, color, label)` — точка с проекциями
- `asymptote(orientation, value, ...)` — асимптота
- `snapToValue(value, snaps, tolerance)` — snap-точки
- `rightAngleMark`, `angleArcAuto`, `unitVec`, `deg2rad`
- **`g3d.js`** — мини-3D движок (для линий магнитной индукции, движения частиц)
### Новые physics-specific хелперы (в `frontend/js/phys.js`)
```javascript
// === Стрелка вектора (2D) ===
function drawArrow(x1, y1, x2, y2, color, width, headSize) {
// Возвращает SVG: линия + треугольная стрелка на конце
const dx = x2 - x1, dy = y2 - y1;
const len = Math.sqrt(dx*dx + dy*dy);
const ux = dx / len, uy = dy / len;
const px = -uy, py = ux; // перпендикуляр
const h = headSize || 10;
const w = (headSize || 10) * 0.6;
const tipX = x2, tipY = y2;
const baseX = x2 - ux * h, baseY = y2 - uy * h;
const leftX = baseX + px * w, leftY = baseY + py * w;
const rightX = baseX - px * w, rightY = baseY - py * w;
return `<line x1="${x1}" y1="${y1}" x2="${baseX.toFixed(1)}" y2="${baseY.toFixed(1)}" stroke="${color}" stroke-width="${width || 2}"/>`
+ `<polygon points="${tipX},${tipY} ${leftX.toFixed(1)},${leftY.toFixed(1)} ${rightX.toFixed(1)},${rightY.toFixed(1)}" fill="${color}"/>`;
}
// === Линии электрического поля от точечного заряда ===
function fieldLinesPointCharge(cx, cy, sign, scale, numLines) {
// sign: +1 или -1 (от знака заряда)
// numLines: число линий (12-24)
// Возвращает массив SVG-линий — стрелки наружу для +q, внутрь для -q
let s = '';
const N = numLines || 16;
for (let i = 0; i < N; i++) {
const a = 2 * Math.PI * i / N;
const r1 = 15, r2 = scale;
const x1 = cx + r1 * Math.cos(a), y1 = cy + r1 * Math.sin(a);
const x2 = cx + r2 * Math.cos(a), y2 = cy + r2 * Math.sin(a);
if (sign > 0) s += drawArrow(x1, y1, x2, y2, '#dc2626', 1.5);
else s += drawArrow(x2, y2, x1, y1, '#2563eb', 1.5);
}
return s;
}
// === Линии поля диполя (две точечных зарядов противоположных) ===
function fieldLinesDipole(c1, c2, scale, numLines) {
// Параметрически — линия от +q к -q вдоль кривых, перпендикулярных эквипотенциалям
// Упрощённо: использовать numerical integration по полю
// ...
}
// === Электрическая схема: компоненты ===
function batteryEMF(x, y, EMF, orientation) {
// Возвращает SVG условного обозначения батареи (две полоски + подпись ε)
}
function resistor(x, y, w, h, R, orientation) {
// Возвращает SVG зигзага резистора + подпись R
}
function capacitor(x, y, C, orientation) {
// Две параллельные линии + подпись C
}
function ammeter(x, y) {
// Круг с буквой A
}
function voltmeter(x, y) {
// Круг с буквой V
}
function inductor(x, y, L, orientation) {
// Серия маленьких полукругов
}
function lightbulb(x, y) {
// Круг с крестиком (или волной)
}
// === Магнитное поле: стрелки В через плоскость экрана ===
function magneticField(x, y, direction, dx, dy) {
// direction: 'in' (крест) или 'out' (точка)
// Рисует сетку 5x5 крестиков (вошло в плоскость) или точек (вышло из плоскости)
let s = '';
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++) {
const cx = x + i * dx, cy = y + j * dy;
if (direction === 'in') {
s += `<circle cx="${cx}" cy="${cy}" r="6" fill="none" stroke="#0891b2" stroke-width="1.5"/>`;
s += `<line x1="${cx-4}" y1="${cy-4}" x2="${cx+4}" y2="${cy+4}" stroke="#0891b2" stroke-width="1.5"/>`;
s += `<line x1="${cx-4}" y1="${cy+4}" x2="${cx+4}" y2="${cy-4}" stroke="#0891b2" stroke-width="1.5"/>`;
} else {
s += `<circle cx="${cx}" cy="${cy}" r="6" fill="none" stroke="#0891b2" stroke-width="1.5"/>`;
s += `<circle cx="${cx}" cy="${cy}" r="2" fill="#0891b2"/>`;
}
}
}
return s;
}
// === PV-диаграмма с изопроцессами ===
function pvDiagram(W, H, pad, pMax, vMax) {
// Возвращает axes2D-объект с диапазоном (0..vMax, 0..pMax)
// Подписи осей: P (атм или Па), V (л или м³)
}
// === Молекула газа (частица) ===
function molecule(x, y, r, color) {
return `<circle cx="${x}" cy="${y}" r="${r}" fill="${color}" stroke="#0f172a" stroke-width="0.8"/>`;
}
// === Симуляция броуновского движения / движения молекул газа ===
class GasSimulation {
constructor(opts) {
this.W = opts.W; this.H = opts.H;
this.N = opts.N || 30;
this.particles = [];
for (let i = 0; i < this.N; i++) {
this.particles.push({
x: Math.random() * this.W,
y: Math.random() * this.H,
vx: (Math.random() - 0.5) * opts.speed,
vy: (Math.random() - 0.5) * opts.speed
});
}
}
step(dt) {
this.particles.forEach(p => {
p.x += p.vx * dt; p.y += p.vy * dt;
// отражение от стенок
if (p.x < 0 || p.x > this.W) p.vx = -p.vx;
if (p.y < 0 || p.y > this.H) p.vy = -p.vy;
});
}
render() {
return this.particles.map(p => molecule(p.x, p.y, 4, '#2563eb')).join('');
}
}
```
### Цветовая кодировка для физики
- **Положительный заряд** — красный (`#dc2626`)
- **Отрицательный заряд** — синий (`#2563eb`)
- **Электрическое поле $\vec{E}$** — оранжевый (`#ea580c`)
- **Магнитное поле $\vec{B}$** — фиолетовый (`#7c3aed`)
- **Сила** — зелёный (`#10b981`)
- **Скорость** — голубой (`#0891b2`)
- **Молекулы газа** — синие точки
- **Температура** — градиент от синего (холод) к красному (горячо)
- **Ток** — янтарный (`#d97706`)
- **Резистор / провод** — тёмно-серый (`#374151`)
- **Изотерма** (P-V) — оранжевый
- **Изобара** (V-T) — синий
- **Изохора** (P-T) — зелёный
### Правила (обязательны с §1)
1. **Все единицы измерения через KaTeX**`\\text{Н}`, `\\text{м}^2$, `\\text{Дж/(моль·К)}` — никогда сырой текст.
2. **Slider'ы — в реальных физических величинах** с разумными диапазонами:
- Температура: 100..500 К (или $-100..200$ °C)
- Давление: 0.5..5 атм или $10^4..10^6$ Па
- Объём: 1..10 л или $0.001..0.01$ м³
- Заряд: $\pm 10^{-9}..10^{-6}$ Кл (нКл, мкКл)
- Расстояние между зарядами: 0.01..1 м
- Напряжение: 1..220 В
- Ток: 0.01..10 А
- Магнитная индукция: $10^{-3}..1$ Тл
3. **Snap-точки** на эталонных значениях: $T = 273$ К ($0$ °C), $T = 0$ K, $p = 1$ атм.
4. **Все формулы с КаTeX**, двойные backslash.
5. **Векторы — со стрелками** через `drawArrow`. Никогда `→` в тексте — через KaTeX `\\vec{E}`.
6. **Подписи единиц измерения** — обязательны на всех осях графиков, во всех результатах калькуляторов.
7. **Симуляции — через `requestAnimationFrame`** с возможностью паузы и сброса.
8. **Эмодзи запрещены.**
9. **Никаких пикселей в подписях** — всё в СИ или производных единицах.
### Типы интерактивов по темам
| Тип | Применение |
|-----|-----------|
| **Симуляция движения молекул** | §1 (МКТ), §3 (давление как удары о стенку), §9 (испарение) |
| **PV/VT/PT диаграммы** | §6 (изопроцессы — главное!), §15 (цикл Карно) |
| **Калькулятор Клапейрона–Менделеева** | §5 |
| **Психрометрический анализ** | §10 |
| **Поток теплоты симуляция** | §13 |
| **Цикл Карно — анимированная PV-диаграмма** | §15 |
| **Закон Кулона: 3D-визуализатор сил** | §17 |
| **Линии напряжённости электрического поля** | §20 (главный визуал электростатики) |
| **Эквипотенциальные поверхности** | §22 |
| **Конденсатор-конструктор** | §23 |
| **Электрическая цепь — конструктор** | §25, §26 |
| **Правило буравчика / левой руки — 3D** | §28, §29, §30 |
| **Движение заряженной частицы в B-поле — 3D-траектория** | §30 (главный визуал магнетизма) |
| **Опыты Фарадея — анимация катушки и магнита** | §31 |
| **Самоиндукция — LR-цепь, ток как функция времени** | §33 |
| **p-n переход — визуализация дырок и электронов** | §37 |
---
## 🚀 ПОРЯДОК РЕАЛИЗАЦИИ
Учитывая 37 параграфов — самый большой проект, разбиваем на **8 фаз**.
### Phase 0: Архитектура (фундамент)
- `physics_10_hub.html` — палитра **yellow/amber** (классический физический цвет) или **orange**
- 6 ch-файлов: `physics_10_ch1.html` (МКТ), `_ch2.html` (термодинамика), `_ch3.html` (электростатика), `_ch4.html` (пост. ток), `_ch5.html` (магнитное поле), `_ch6.html` (ток в средах)
- Миграция `0XX_physics_10_hub.sql` (следующий доступный номер)
- **`frontend/js/phys.js`** — новый модуль physics-хелперов (drawArrow, fieldLines, magneticField, схемы, GasSimulation, pvDiagram)
- 2D-хелперы (axes2D, plotFunc, etc.) и G3D подключены в каждый ch
- KaTeX CDN + auto-render
- POLISH CSS + bump-score JS
### Phase 1: Молекулярная физика — Глава 1 (10 §) — 5 волн
Самая большая глава учебника. По 2 §§ на волну.
- **Wave 1**: §1 (МКТ основные положения, БРОУНОВСКОЕ ДВИЖЕНИЕ симуляция) + §2 (масса/количество вещества, калькулятор $N$, $\nu$, $m$).
- **Wave 2**: §3 (давление через удары молекул, симуляция $p = \frac{1}{3} n m \overline{v^2}$) + §4 (температура, шкалы, $\overline{E_k} = \frac{3}{2}kT$).
- **Wave 3**: §5 (уравнение Клапейрона–Менделеева, калькулятор) + §6 (**изопроцессы — главный визуал главы**: PV/VT/PT диаграммы с slider'ом T, V, p).
- **Wave 4**: §7 (твёрдые тела, виды кристаллов SVG) + §8 (жидкости, поверхностное натяжение симуляция).
- **Wave 5**: §9 (испарение, насыщенный пар, динамическое равновесие симуляция) + §10 (влажность, психрометрический калькулятор) + **Финал главы 1** (7 боссов + ачивка «Мастер МКТ»).
### Phase 2: Молекулярная физика — Глава 2 «Термодинамика» (5 §) — 3 волны
- **Wave 1**: §11 (внутренняя энергия, $U = \frac{3}{2} \nu R T$) + §12 (работа в термодинамике, площадь под P-V кривой).
- **Wave 2**: §13 (количество теплоты — все 4 формулы) + §14 (первый закон термодинамики, применение к изопроцессам).
- **Wave 3**: §15 (тепловые двигатели, **цикл Карно — анимация PV-цикла**, КПД) + **Финал главы 2** (5 боссов + ачивка «Мастер термодинамики»).
### Phase 3: Электростатика (9 §) — 5 волн
- **Wave 1**: §16 (заряд, закон сохранения) + §17 (**закон Кулона — визуализатор сил**, slider $q_1, q_2, r$).
- **Wave 2**: §18 (электрическое поле) + §19 (напряжённость, суперпозиция).
- **Wave 3**: §20 (**линии напряжённости — главный визуал** — поле точечного заряда, диполя, двух одноимённых) + §21 (работа поля, потенциал).
- **Wave 4**: §22 (разность потенциалов, напряжение, $E = U/d$) + §23 (конденсаторы, $C = \varepsilon \varepsilon_0 S/d$).
- **Wave 5**: §24 (энергия поля конденсатора) + **Финал главы 3** (7 боссов + ачивка «Мастер электростатики»).
### Phase 4: Постоянный ток (2 §) — 1 волна
- **Wave 1**: §25 (ЭДС, сторонние силы) + §26 (закон Ома для полной цепи, **конструктор электрической цепи**) + **Финал главы 4** (5 боссов).
### Phase 5: Магнитное поле и индукция (7 §) — 4 волны
- **Wave 1**: §27 (опыт Эрстеда, симуляция) + §28 (индукция, правило буравчика, **3D-линии магнитной индукции вокруг проводника**).
- **Wave 2**: §29 (сила Ампера, правило левой руки, симуляция) + §30 (**сила Лоренца — 3D-движение частицы по спирали в B-поле**).
- **Wave 3**: §31 (магнитный поток, **опыты Фарадея — анимация катушки и магнита**) + §32 (правило Ленца, закон ЭМИ).
- **Wave 4**: §33 (самоиндукция, индуктивность, LR-цепь) + **Финал главы 5** (7 боссов + ачивка «Мастер магнетизма»).
### Phase 6: Ток в различных средах (4 §) — 2 волны
- **Wave 1**: §34 (металлы, сверхпроводимость) + §35 (электролиты, законы Фарадея).
- **Wave 2**: §36 (газы, плазма, виды разрядов) + §37 (полупроводники, **p-n переход — визуализация дырок и электронов**, n-/p-тип) + **Финал главы 6** (5 боссов + ачивка «Мастер токов»).
### Phase 7: Финал курса Физика 10
- Итоговая шпаргалка (6 mini-карточек: МКТ, термодинамика, электростатика, ток, магнетизм, ток в средах)
- **10 интегрированных боссов**, комбинирующих темы из разных глав:
1. **МКТ + термодинамика**: $U$ и $T$ моноатомного газа
2. **Изопроцесс + работа**: $A$ за изобарное расширение
3. **Цикл Карно**: КПД при $T_1 = 600$ К, $T_2 = 300$ К
4. **Закон Кулона + суперпозиция**: сила на 3-й заряд от двух источников
5. **Конденсатор + энергия**: $W$ от $C$, $U$
6. **Закон Ома для полной цепи + КПД**
7. **Сила Лоренца + радиус**: $R = mv/(qB)$
8. **Закон ЭМИ Фарадея**: $\mathcal{E}_i$ от $d\Phi/dt$
9. **Самоиндукция + энергия**: $W_L = LI^2/2$
10. **Магистр электродинамики**: синтез
- Ачивка **«Магистр физики 10»** (+150 XP — крупнейший курс)
- Кнопка «К каталогу учебников» → `/textbooks`
---
## 📦 Структура каждого § (стандарт)
### Wave 0 главы — skeleton (включено в Phase 0)
- CSS + цветовая палитра 3 акцентов на §
- Sections + stub-builders
- Hub-карточка обновляется
- Миграция в БД
### Wave N — наполнение § (по 2 § на волну)
**Каждый § содержит:**
- **3 теоретические карточки** (`theory`, `rule`, `example`) с SVG-схемами/графиками
- **4 интерактива** (`.wg` виджеты):
1. **Симуляция** или **3D/SVG-визуализатор** (главный)
2. **Калькулятор закона** (ввод параметров → формула с подстановкой → результат с единицами)
3. **DnD/Квикфайр** (понятийный)
4. **Тренажёр расчётных задач** (5-6 задач с числовым ответом, допуск 1-5%)
- **Кнопка «Я прочитал § (+10 XP)»**
- **Прогресс/XP**: IV1 15%/10XP, IV2 15%/10XP, IV3 25%/15XP, IV4 25%/15XP, чтение 30%/10XP
### Wave финал главы
- **Итоговая шпаргалка** с формулами
- **5-7 интегрированных боссов** (синтез тем главы)
- **Ачивка «Мастер главы N»** + 50 XP + confetti
- **Кнопка** перехода к следующей главе
---
## 📊 Оценка объёма
| Глава | § | LOC |
|-------|---|-----|
| Phase 0: skeleton + phys.js | — | 2500 |
| Глава 1 МКТ (§§1-10) | 10 | 13 000 |
| Глава 2 Термодинамика (§§11-15) | 5 | 6 500 |
| Глава 3 Электростатика (§§16-24) | 9 | 12 000 |
| Глава 4 Пост. ток (§§25-26) | 2 | 3 000 |
| Глава 5 Магнетизм (§§27-33) | 7 | 10 500 |
| Глава 6 Ток в средах (§§34-37) | 4 | 5 500 |
| Phase 7 финал курса | — | 1 500 |
| **Итого** | **37** | **~54 500 LOC** |
Это **больше**, чем Геометрия 11 (~30K) или Алгебра 9 (~30K). Самый объёмный курс.
---
## ⚠️ Критические правила (опыт всех 10 предыдущих учебников)
### ❌ НЕ делать
- **Slider'ы в пиксельных диапазонах** (40..150). Только в реальных физических единицах с правильным масштабом отрисовки.
- **Подписи без единиц измерения** ($p = 100$ — это что? Па? атм?). Всегда: $p = 1$ атм $= 10^5$ Па.
- **Эмодзи** (`⚠`, `🌡️`, `🔋`). Только inline SVG.
- **Одиночный `\` перед буквой** в JS template literals: `\dfrac`, `\sin`, `\vec`. ВСЕГДА `\\dfrac`.
- **Сырой KaTeX в `<option>`** — KaTeX там не рендерится. Только unicode-текст в `<option>`.
- **Эталонные значения вместо реальных** — в задачах используй $\pi = 3.14$, $g = 10$ м/с², $k_B = 1.38 \cdot 10^{-23}$ Дж/К ровно.
- **Symbol `\degree`** не существует в KaTeX. Используй `^\\circ` для °.
- **Бесконечные симуляции без паузы** — всегда кнопка «Пауза / Сброс» и `cancelAnimationFrame` при unmount.
### ✅ Обязательно
- **Все единицы СИ в формулах** — никаких ватт в задаче без обозначения «Вт».
- **Snap-точки в slider'ах** для эталонных значений: $T = 273$ К, $p = 1$ атм, $g = 10$ м/с².
- **Цветовая кодировка** едина по всем § (заряд+/−, поле $E$/$B$, сила, скорость, ток).
- **KaTeX-аудит** через `node` после каждого Wave (паттерн `[^\\]\\[a-z]{2,}` в JS-блоках).
- **JS parse-check** через `new Function(scriptBody)` после каждого Wave.
- **Авторов нет** — в hub footer'е только «Интерактивный учебник «Физика — 10 класс» · LearnSpace» (как сделали для остальных).
- **Симуляции** должны иметь паузу, перезапуск, и быть **физически корректными**: реальная скорость, реальная масса, реальные коэффициенты.
---
## 🎬 Запуск
**Phase 0**: skeleton 6 ch-файлов + hub + миграция + новый модуль `phys.js` со всеми physics-хелперами.
Палитра hub: **yellow/amber** (классическая для физики) — `--pri:#ca8a04` (yellow-600), `--pri-d:#a16207` (yellow-700), `--pri-soft:#fef3c7`. Header gradient: `linear-gradient(110deg,#713f12 0%,#ca8a04 55%,#fde047 100%)`. Эта палитра отличается от Алгебры 11 (teal) и Геометрии 11 (cyan).
После Phase 0 → Phase 1 Wave 1 (§1 МКТ + §2 масса молекул).
После завершения всех 8 Phase Физика 10 — план одного 10-класса завершён (можно потом план Алгебры 10 + Геометрии 10).