- Удалён physics_11_labs.html из списка файлов - Удалена секция 'Лабораторный эксперимент' в хабе и wireframe - Убрана волна W15 'physics_11_labs.html — 9 лабораторных работ' (W16 polish → W15) - Обновлены счётчики: 10 файлов → 9, ~28 сессий → ~26, 16 волн → 15 - Из итогов убрана строка про 9 лабораторок
34 KiB
План реализации: Физика 11 (Беларусь, Жилко/Маркович/Сокольский, 2021)
Источник: fizika_11kl_zhilko_rus_2021.pdf (286 стр. + приложение)
Авторы: В. В. Жилко, Л. Г. Маркович, А. А. Сокольский
Издательство: «Народная асвета», Минск, 2021
Уровень: Базовый + повышенный (с электронным приложением)
Это выпускной курс физики, охватывающий почти всю современную физику от классических колебаний до элементарных частиц. Главные вызовы:
- Анимированные осциллограммы и симуляторы маятников/контуров — нужна новая библиотека
phys-fx.jsповерх SVG/Canvas с реальным временем.- Лучевая оптика (§14-§23): тонкие линзы, сферические зеркала, дифракционные решётки — нужен интерактивный трассировщик лучей.
- Квантовая физика (§27-§44): фотоэффект, Бор, ядро — много новых SVG-моделей (атом, ядро, спектры).
- 45 параграфов против 22 у Алгебры 10 и 14 у Геометрии 10 — самый большой учебник за весь проект.
Это 2-я физика в системе (после Физики 10). Используем
phys-fx.jsкак продолжение опытаstereo3d.js.
🎯 Содержание учебника (45 § в 8 главах)
Глава 1. Механические колебания и волны (§§ 1-6, стр. 5-50)
| § | Тема | Ключевые формулы / явления |
|---|---|---|
| §1 | Колебательное движение. Гармонические колебания | T=\Delta t/N, \nu=1/T, \omega=2\pi/T, x=A\cos(\omega t+\varphi_0). Осциллограмма. |
| §2 | Пружинный и математический маятники | T_{пр}=2\pi\sqrt{m/k}, T_{мат}=2\pi\sqrt{l/g}. |
| §3 | Превращения энергии при гарм. колебаниях | W_{мех}=\tfrac{kA^2}{2}=\tfrac{m\omega^2 A^2}{2}. Сохранение полной энергии. |
| §4 | Свободные и вынужденные колебания. Резонанс | Затухание, диссипация, резонансная кривая, \omega_{рез}\approx\omega_0. |
| §5 | Распространение в упругой среде. Продольные и поперечные волны | \lambda=vT, v=\lambda\nu. |
| §6 | Звуковые волны | Слышимый диапазон 16 Гц-20 кГц, v_{зв}^{возд}\approx 340 м/с. Интенсивность, громкость. |
Глава 2. Электромагнитные колебания и волны (§§ 7-13, стр. 51-87)
| § | Тема | Ключевые формулы / явления |
|---|---|---|
| §7 | Колебательный контур. Своб. ЭМ колебания. Формула Томсона | T=2\pi\sqrt{LC}. Превращения W_C \leftrightarrow W_L. |
| §8 | Вынужденные ЭМ колебания. Переменный ток | i=I_0\sin(\omega t), u=U_0\sin(\omega t+\varphi). Действ. значения I=I_0/\sqrt{2}. |
| §9 | Преобразование переменного тока. Трансформатор | k=N_1/N_2=U_1/U_2. КПД. |
| §10 | Производство, передача, потребление электроэнергии | ГЭС, ТЭС, АЭС. Потери P=I^2R. |
| §11 | Экологические проблемы энергетики | Альтернативные источники. |
| §12 | ЭМ волны. Шкала ЭМ волн | c=3\cdot 10^8 м/с, радио → γ. \lambda от км до фм. |
| §13 | Действие ЭМ излучения на живые организмы | Ионизирующее vs неионизирующее. |
Глава 3. Оптика (§§ 14-23, стр. 88-150)
| § | Тема | Ключевые формулы / явления |
|---|---|---|
| §14 | ЭМ природа света. Скорость света | Опыт Майкельсона, Рёмера. c в вакууме. |
| §15 | Интерференция света | \Delta=k\lambda (max), \Delta=(2k+1)\lambda/2 (min). Кольца Ньютона. |
| §16 | Принцип Гюйгенса-Френеля. Дифракция. Дифр. решётка | d\sin\varphi=k\lambda. |
| §17 | Прямолин. распр. и отражение. Зеркала | \angle_{пад}=\angle_{отр}. Плоские зеркала. |
| §18 | Сферические зеркала. Построение изображений | \frac{1}{F}=\frac{1}{d}+\frac{1}{f}, \Gamma=f/d. |
| §19 | Закон преломления. Полное отражение | n_1\sin\alpha=n_2\sin\beta, \sin\alpha_{пр}=1/n. |
| §20 | Прохождение света через оптические элементы | Призмы, плоскопарал. пластинки, оптоволокно. |
| §21 | Формула тонкой линзы | \frac{1}{F}=\frac{1}{d}+\frac{1}{f}, D=1/F. |
| §22 | Оптические приборы для действ. изображений | Фотоаппарат, проектор. |
| §23 | Оптические приборы для увеличения угла зрения | Лупа, микроскоп, телескоп. |
Глава 4. Основы СТО (§§ 24-26, стр. 151-162)
| § | Тема | Ключевые формулы |
|---|---|---|
| §24 | Принцип относ. Галилея. Экспериментальные предпосылки СТО | Опыт Майкельсона-Морли. |
| §25 | Постулаты СТО | 2 постулата Эйнштейна. Преобразования Лоренца. \Delta t=\gamma \Delta t_0, l=l_0/\gamma. |
| §26 | Релятивистская динамика. E=mc^2 |
p=\gamma m v, E_0=mc^2, E^2=(mc^2)^2+(pc)^2. |
Глава 5. Фотоны. Действия света (§§ 27-29, стр. 163-182)
| § | Тема | Ключевые формулы |
|---|---|---|
| §27 | Фотоэффект. Эксперим. законы. Гипотеза Планка | E=h\nu, h=6{,}63\cdot 10^{-34} Дж·с. |
| §28 | Фотон. Уравнение Эйнштейна для фотоэффекта | h\nu=A_{вых}+\frac{mv^2_{max}}{2}, \nu_{кр}=A/h. |
| §29 | Давление света. Корпускулярно-волновой дуализм | p_{фот}=h\nu/c. Опыт Лебедева. |
Глава 6. Физика атома (§§ 30-34, стр. 183-207)
| § | Тема | Ключевые формулы |
|---|---|---|
| §30 | Ядерная модель атома (Резерфорд) | Опыт с α-частицами. Размер ядра 10^{-15} м. |
| §31 | Квантовые постулаты Бора | E_n=-E_1/n^2. Боровский радиус. |
| §32 | Излучение и поглощение света. Спектры | h\nu=E_n-E_m. Линейчатые спектры. |
| §33 | Спонтанное и индуцированное излучение | Подготовка к лазерам. |
| §34 | Лазеры | Инверсная населённость. Когерентность. |
Глава 7. Ядерная физика и элементарные частицы (§§ 35-44, стр. 208-265)
| § | Тема | Ключевые формулы |
|---|---|---|
| §35 | Протонно-нейтронная модель ядра | A=Z+N. Изотопы. |
| §36 | Ядерные реакции. Законы сохранения | Сохр. заряда, нуклонов, энергии-импульса. |
| §37 | Энергия связи ядра | E_{св}=\Delta m c^2, \Delta m=Zm_p+Nm_n-m_я. |
| §38 | Радиоактивность | α, β, γ-распады. |
| §39 | Закон радиоактивного распада | N=N_0 \cdot 2^{-t/T}. Период полураспада. |
| §40 | Деление тяжёлых ядер. Цепные реакции | Деление $^{235}$U. k — коэф. размножения. |
| §41 | Ядерный реактор | Управляющие стержни, замедлители. |
| §42 | Реакции ядерного синтеза | Термояд. Звёзды. ИТЭР. |
| §43 | Ионизирующее излучение. Дозиметрия | Доза D, эквивалент H. Зиверт. |
| §44 | Элементарные частицы и их взаимодействия | Стандартная модель. 4 фундам. взаимодействия. |
Глава 8. Основы единой физической картины мира (§ 45, стр. 266-273)
| § | Тема |
|---|---|
| §45 | Современная естественнонаучная картина мира |
Итого: 45 параграфов в 8 главах + ответы к 26 упражнениям.
🏗️ Архитектура файлов
Продолжаем шаблон geom11_ch1 / geom10_r1 (одобрённый стиль).
backend/src/db/migrations/
028_physics_11_hub.sql — hub + 8 chapter children
frontend/textbooks/
physics_11_hub.html — hub (8 карточек глав, шпаргалка, финал курса)
physics_11_ch1.html — Глава 1 (§1-§6 + Финал)
physics_11_ch2.html — Глава 2 (§7-§13 + Финал)
physics_11_ch3.html — Глава 3 (§14-§23 + Финал) ⚠ САМАЯ БОЛЬШАЯ
physics_11_ch4.html — Глава 4 (§24-§26 + Финал)
physics_11_ch5.html — Глава 5 (§27-§29 + Финал)
physics_11_ch6.html — Глава 6 (§30-§34 + Финал)
physics_11_ch7.html — Глава 7 (§35-§44 + Финал) ⚠ ОЧЕНЬ БОЛЬШАЯ
physics_11_ch8.html — Глава 8 (§45 + Итог всего курса)
frontend/js/
phys-fx.js — НОВАЯ библиотека: осциллограммы, маятники,
волны, лучевые трассировщики, спектры, ядра.
~1000 строк. Анимация через requestAnimationFrame.
phys11-helpers.js — компоненты глав (квизы, боссы — повторяем geom11).
Цветовая палитра тем (по главам)
| Глава | Тема | Watermark | Основной цвет | Тёмный | Светлый |
|---|---|---|---|---|---|
| 1 Колебания и волны | wave |
∿ |
#0891b2 (cyan) |
#155e75 |
#a5f3fc |
| 2 ЭМ колебания | bolt |
⚡ |
#7c3aed (violet) |
#5b21b6 |
#c4b5fd |
| 3 Оптика | prism |
◇ |
#f59e0b (amber) |
#b45309 |
#fde68a |
| 4 СТО | relativity |
c |
#0ea5e9 (sky) |
#0369a1 |
#bae6fd |
| 5 Фотоны | photon |
γ |
#eab308 (yellow) |
#a16207 |
#fef08a |
| 6 Атом | atom |
⚛ |
#10b981 (emerald) |
#065f46 |
#a7f3d0 |
| 7 Ядро | nucleus |
☢ |
#dc2626 (red) |
#7f1d1d |
#fca5a5 |
| 8 Картина мира | universe |
∞ |
#6366f1 (indigo) |
#3730a3 |
#c7d2fe |
📚 Библиотека phys-fx.js (~1000 строк)
Это вторая «движковая» библиотека проекта (после stereo3d.js). Главное — анимация в реальном времени через requestAnimationFrame.
Архитектура
window.PHYS = {
// === ВРЕМЕННЫЕ ОСЦИЛЛОГРАММЫ ===
Oscillogram: class { ... }, // sin/cos/треугольник/меандр + амплитуда+фаза слайдеры
Lissajous: class { ... }, // фигуры Лиссажу (для §3)
// === МАЯТНИКИ ===
SpringMass: class { ... }, // пружинный маятник (анимация, график x(t))
Pendulum: class { ... }, // математический маятник (изменение l, g)
CoupledOscillators: class { ... }, // связанные осцилляторы (для биений)
// === ВОЛНЫ ===
TransverseWave: class { ... }, // поперечная волна (струна)
LongitudinalWave: class { ... }, // продольная (звук в воздухе) — сжатие/разрежение
Interference: class { ... }, // 2 источника, кольца, полосы
Diffraction: class { ... }, // дифр. картина за щелью/решёткой
Doppler: class { ... }, // эффект Доплера (для §6)
// === ЭЛЕКТРИЧЕСКИЕ СХЕМЫ ===
LCcircuit: class { ... }, // колебательный контур: ток+напряжение+поля
ACgen: class { ... }, // генератор переменного тока (вращ. рамка)
Transformer: class { ... }, // схема трансформатора
RLCresonance: class { ... }, // график U(ω) — резонансная кривая
// === ОПТИКА ===
RayTracer: class { ... }, // ОСНОВНОЙ компонент: трассировщик лучей
// линзы (тонкие), сферические зеркала, плоские,
// призмы, преломление, полное отражение.
// Объект-стрелка, drag, F и 2F маркеры, fx-точки.
MirrorBuilder: class { ... }, // спец-режим для §17-§18 (сферические зеркала)
PrismRefraction: class { ... }, // §20 — призма со спектром
EMSpectrum: class { ... }, // шкала ЭМ волн (§12) — кликаемая
// === КВАНТЫ И АТОМ ===
PhotoelectricLab: class { ... }, // §27-§28: установка с UV-источником, ток vs U
PlanckCurve: class { ... }, // распределение энергии излучения
BohrAtom: class { ... }, // §31: атом Бора с переходами электрона
Spectrum: class { ... }, // §32: линейчатые спектры H, He, Na
Laser: class { ... }, // §34: накачка/индукция (анимация)
// === ЯДРО ===
Nucleus: class { ... }, // §35: ядро из протонов и нейтронов
AlphaScattering: class { ... }, // §30: опыт Резерфорда (полёт α-частиц)
RadioactiveDecay: class { ... }, // §38-§39: экспоненциальный распад
// (анимация атомов: распадаются по времени)
Chain: class { ... }, // §40: цепная реакция (расщепление 235U)
ReactorSchema: class { ... }, // §41: схема реактора (стержни, замедлитель)
Fusion: class { ... }, // §42: H + H -> He (анимация)
// === КОММУНИКАЦИЯ ===
util: {
animate(fn) { ... }, // requestAnimationFrame обёртка
pause(handle) { ... },
plot(data, opts) { ... } // график (x, y) с сеткой и осями
}
};
Ключевые компоненты подробно
1. PHYS.RayTracer (для всех §17-§22)
Самый сложный компонент. Должен поддерживать:
- Объект-стрелка (можно тащить мышью, изменять размер)
- 3 опорных луча автоматически (через F, через центр, параллельно оси)
- Линзы: собирающая/рассеивающая, изменяемый
F - Сферические зеркала: вогнутое/выпуклое
- Действительное vs мнимое изображение (разный цвет)
- Формулы внизу:
\frac{1}{F}=\frac{1}{d}+\frac{1}{f},\Gamma=f/d— обновляются live - Drag-режимы: можно тащить
F, можно тащить объект
2. PHYS.Oscillogram
- Конструктор:
new PHYS.Oscillogram(container, { width, height, fn: t => Math.sin(t) }) - Слайдеры: A (амплитуда), ω (частота), φ (фаза), затухание γ
- Showcase для §1, §3 (превращения энергии — показываем кинетическую и потенциальную одновременно)
3. PHYS.RadioactiveDecay
- Сетка из 1000 «атомов» (точек)
- По таймеру каждая точка с вероятностью
1-e^{-\lambda \Delta t}распадается (меняет цвет) - График
N(t)строится в реальном времени - Демонстрирует
N=N_0 e^{-\lambda t}илиN=N_0 \cdot 2^{-t/T}
4. PHYS.BohrAtom
- Концентрические орбиты (1, 2, 3, ...)
- Электрон бегает по орбите
- Кнопки «возбуждение» — электрон прыгает на верхний уровень
- При спонтанном возврате — испускает фотон (стрелка с λ)
- Связано с диаграммой уровней:
E_n=-13{,}6/n^2эВ
🌊 Особенности глав
Глава 1 (Колебания, ~7 wave)
Самый «движковый» материал. Каждый § требует анимации.
| § | Главный интерактив |
|---|---|
| §1 | Осциллограмма с 3 ползунками + осциллоскоп-симулятор |
| §2 | Пружинный + матем. маятник side-by-side, изменяем m, k, l, g — наблюдаем T |
| §3 | Энергия осциллятора: показываем W_к(t), W_п(t), W_{мех}(t) — суммарная константа |
| §4 | Резонансная кривая: ω-ползунок, выбор затухания γ. Графики ωᵣ |
| §5 | Распространение волны: показываем «снимок» в момент t и точку в момент t |
| §6 | Звук: ползунок частоты (16-20000 Гц) с фактическим воспроизведением <audio> |
Боссы: 7 (по 1 на §) + 4-5 финальных = 11-12 боссов в главе.
Глава 2 (ЭМ колебания, ~6 wave)
Электротехнические схемы — нужен SVG-стандарт для конденсаторов, катушек, источников.
| § | Главный интерактив |
|---|---|
| §7 | LC-контур: анимация заряда и тока, поле в C и L |
| §8 | Переменный ток: вращающаяся рамка → синусоида (синхронно) |
| §9 | Трансформатор: схема + расчёт U_2 по k |
| §10 | Схема энергосистемы: ТЭС → ЛЭП → потребитель (анимация потерь) |
| §11 | Эко-карточки (ВЭС, СЭС) — статика |
| §12 | Шкала ЭМ волн: интерактивная (клик → описание + примеры) |
| §13 | Дозы излучения (статика) |
Боссы: 7 + 4 финальных.
Глава 3 (Оптика, ~9 wave) — САМАЯ БОЛЬШАЯ ГЛАВА
10 параграфов с лучевыми построениями.
| § | Главный интерактив |
|---|---|
| §14 | Опыт Майкельсона (анимация интерферометра) |
| §15 | Интерференция от 2 щелей (Юнг) — кольца/полосы. Слайдер расстояния |
| §16 | Дифр. решётка: показ спектра, слайдер d и \lambda |
| §17 | Плоское зеркало: построение изображения |
| §18 | Сферическое зеркало: вогнутое/выпуклое, $F$-маркеры, drag-объект |
| §19 | Закон Снелла: интерактив с углами, $n$-ползунок. Полное отражение |
| §20 | Призма со спектром (как на обложке учебника!) |
| §21 | Тонкая линза: ТРАССИРОВКА (главный интерактив всей главы) |
| §22 | Фотоаппарат, проектор — схемы с расчётами |
| §23 | Микроскоп, телескоп — схемы |
Боссы: 10 + 5 финальных. Финал главы 3 — мини-курсовик по оптике.
Глава 4 (СТО, ~3 wave)
Концептуально сложно, но мало параграфов.
| § | Главный интерактив |
|---|---|
| §24 | Опыт Майкельсона-Морли (схема + результат) |
| §25 | Замедление времени, сокращение длин — слайдер v/c |
| §26 | Релятивистская энергия: график E(v) |
Боссы: 3 + 4 финальных. Финал — задачи на «парадокс близнецов».
Глава 5 (Фотоны, ~3 wave)
| § | Главный интерактив |
|---|---|
| §27 | Опыт фотоэффекта: лампа → катод, I(U) — ползунок U |
| §28 | Уравнение Эйнштейна: вычисление v_{max} от \nu |
| §29 | Давление света: опыт Лебедева (вертушка) |
Боссы: 3 + 4 финальных.
Глава 6 (Атом, ~5 wave)
| § | Главный интерактив |
|---|---|
| §30 | Опыт Резерфорда: запуск α-частиц на золотую фольгу |
| §31 | Атом Бора: уровни энергии, переходы E_n - E_m |
| §32 | Спектры: H, He, Na — клик по λ → формула |
| §33 | Спонтанное vs индуцированное (анимация) |
| §34 | Лазер: схема накачки + луч |
Боссы: 5 + 4 финальных.
Глава 7 (Ядро, ~10 wave) — ВТОРАЯ ПО СЛОЖНОСТИ
| § | Главный интерактив |
|---|---|
| §35 | Модель ядра: A, Z, N — построение ядра разных элементов |
| §36 | Ядерные реакции: уравнение с проверкой балансов |
| §37 | Энергия связи: график E_{св}/A от A (классический!) |
| §38 | α, β, γ распады — анимация |
| §39 | Закон распада: N(t) — слайдер T и время |
| §40 | Деление $^{235}$U: анимация цепной реакции |
| §41 | Схема ядерного реактора (управляющие стержни, замедлитель) |
| §42 | Термояд: D+T \to ^4He+n. Анимация |
| §43 | Дозиметрия: расчёт дозы + СИ-зиверт |
| §44 | Стандартная модель: таблица кварков и лептонов |
Боссы: 10 + 5 финальных.
Глава 8 (Картина мира, ~2 wave)
| § | Главный интерактив |
|---|---|
| §45 | Схема физических теорий и их связей. Интерактивная карта эволюции картины мира. |
Финал курса: 12 интегральных боссов из всех глав. Мега-ачивка phys11_master.
🎮 Игровая механика (унифицированная с алгеброй/геометрией)
- XP в
localStorageпод ключомphysics11_xp - Ачивки в
physics11_achievements[] - Ачивки по главам:
phys11_ch1_master...phys11_ch8_master - Мега-ачивка курса:
phys11_master(если все 8 ачивок + финал курса) - Уровни:
L=\lfloor\sqrt{XP/100}\rfloor + 1
Бюджет XP (примерно)
| Источник | XP |
|---|---|
| 45 «Прочитал §» × 10 | 450 |
| ~135 квизов × ~12 | 1620 |
| ~48 боссов параграфов × 70 | 3360 |
| 8 финалов глав × ~150 (4-5 боссов) | 1200 |
| 8 ачивок разделов × 100 | 800 |
| Финал курса (12 боссов) | 600 |
| Мега-ачивка | 250 |
| Итого: | ~8280 XP |
При формуле уровней — это ~9-й уровень. Достаточно для игровой мотивации.
🌐 Хаб-страница
physics_11_hub.html — обзор курса с 8 карточками глав (4 в ряд на десктопе, 2 на планшете, 1 на мобиле).
Дополнительные секции хаба
- Карта прогресса — большая визуальная карта от Колебаний до Картины Мира с галочками
- Шпаргалка курса — 8 cheat-cards с ключевыми формулами по главам
- Финал курса (аккордеон):
- 12 интегральных боссов, охватывающих все 8 глав
- При победе —
phys11_master+ 200 XP
Wireframe (структура)
[Header: Физика 11 / Жилко-Маркович-Сокольский]
[Overall progress: 0 из 45 параграфов · 0%]
[Cheatsheet preview: формулы T=2π√(L/k), E=hν, E=mc², ...]
[8 chapter cards]
- Глава 1: ∿ Колебания и волны (cyan)
- Глава 2: ⚡ ЭМ колебания (violet)
- Глава 3: ◇ Оптика (amber)
- Глава 4: c СТО (sky)
- Глава 5: γ Фотоны (yellow)
- Глава 6: ⚛ Атом (emerald)
- Глава 7: ☢ Ядро (red)
- Глава 8: ∞ Картина мира (indigo)
[Final accordion: 12 интегральных боссов]
[Achievements bar: 0/9 ачивок]
[Footer]
🌊 Волны реализации (план работ)
| Волна | Содержание | Длительность |
|---|---|---|
| W0 | Миграция БД + phys-fx.js базовый (Oscillogram + Pendulum + SpringMass + util.animate) + 9 stub-страниц. |
2 сессии |
| W1 | Hub-страница + Глава 1 §1-§3 (колебания, маятники, энергия) | 2 сессии |
| W2 | Глава 1 §4-§6 + Финал главы 1 (волны, звук) | 2 сессии |
| W3 | phys-fx: LCcircuit, ACgen, Transformer + Глава 2 §7-§9 |
2 сессии |
| W4 | Глава 2 §10-§13 + Финал главы 2 | 1 сессия |
| W5 | phys-fx: RayTracer базовый + Глава 3 §14-§17 (интерференция, дифракция, зеркала) |
3 сессии |
| W6 | Глава 3 §18-§20 (сферические зеркала, преломление, призма) | 2 сессии |
| W7 | Глава 3 §21-§23 + Финал главы 3 (линзы и приборы — главный RayTracer) | 2 сессии |
| W8 | Глава 4 §24-§26 + Финал главы 4 (СТО полностью) | 1 сессия |
| W9 | phys-fx: PhotoelectricLab, PlanckCurve + Глава 5 §27-§29 + Финал |
2 сессии |
| W10 | phys-fx: BohrAtom, Spectrum + Глава 6 §30-§32 |
2 сессии |
| W11 | Глава 6 §33-§34 + Финал главы 6 (лазеры) | 1 сессия |
| W12 | phys-fx: Nucleus, RadioactiveDecay, AlphaScattering + Глава 7 §35-§39 |
3 сессии |
| W13 | Глава 7 §40-§44 + Финал главы 7 (реакторы, термояд, СМ) | 2 сессии |
| W14 | Глава 8 §45 + Финал курса (12 интегральных боссов + phys11_master) |
1 сессия |
| W15 | Polish: мобильная адаптация, тёмная тема, кросс-браузер, регрессия phys-fx |
1 сессия |
Итого: ~26 сессий = курс «Физика 11» полностью реализован.
Это самый большой курс проекта (для сравнения: Алгебра 10 — 8 волн, Геометрия 10 — 10 волн, Физика 11 — ~15 волн).
✅ Ключевые принципы качества
- Каждый § — минимум 1 интерактивная симуляция через
phys-fx.js(живая анимация). - Все формулы — через KaTeX с
onload-инициализацией (паттерн geom11). - Дизайн-стиль идентичен geom11: 2-кол layout,
.psel-grid,.secсекции,.wgworkshops, sidebar с XP/cheat sheet. - 8 тем глав с уникальными цветовыми палитрами (см. таблицу выше).
- Прогресс синхронизируется с сервером через
/api/textbooks/physics-11-chN/progress. phys-fx.jsбез зависимостей — чистый JS + SVG + Canvas. Никаких Three.js / D3.- Анимации экономят CPU: один
requestAnimationFrameна страницу, симуляции получаютdtизвне. - Звук работает только по клику (политика автоплея браузеров) — для §6.
- RayTracer должен работать с тачами на мобильных (drag через
pointerevents). - Лабораторки — отдельная страница, без боссов (это методичка).
🔬 Особенности phys-fx.js (детальнее)
Анимация одного компонента
const osc = new PHYS.Oscillogram(el, {
width: 600, height: 200,
fn: t => Math.sin(t),
sliders: { A: [0, 1, 0.5], omega: [0.5, 5, 2] }
});
osc.start(); // requestAnimationFrame
osc.pause();
osc.setSlider('A', 0.7);
osc.destroy(); // освобождает RAF
Глобальный таймер
Все компоненты должны делиться одним глобальным RAF-циклом:
const TICKER = { t: 0, last: 0, subs: [] };
function tick(ts) {
const dt = TICKER.last ? (ts - TICKER.last)/1000 : 0;
TICKER.last = ts;
TICKER.t += dt;
TICKER.subs.forEach(s => s.update(dt, TICKER.t));
requestAnimationFrame(tick);
}
requestAnimationFrame(tick);
PHYS.util.subscribe = sub => TICKER.subs.push(sub);
PHYS.util.unsubscribe = sub => {
const i = TICKER.subs.indexOf(sub);
if (i >= 0) TICKER.subs.splice(i, 1);
};
Это позволит 5-10 симуляций жить на одной странице без 5-10 отдельных RAF.
Пауза при невидимости
Используем IntersectionObserver — если симуляция не видна, она не симулируется. Экономит батарею на мобильных.
📊 Объём работы (оценка)
| Параметр | Значение |
|---|---|
| Параграфов | 45 |
| Глав | 8 |
| Файлов HTML | 9 (hub + 8 ch) |
| Боссов параграфов | ~48 |
| Финальных боссов глав | ~32 |
| Финальных боссов курса | 12 |
| Всего боссов | ~92 |
| Квизов | ~135 |
| Ачивок | 9 (8 + мега) |
Размер phys-fx.js |
~1000 строк |
| Средний размер главы | ~80-100 КБ |
| Итого фронтенда | ~900 КБ-1 МБ |
🚀 Старт реализации
После утверждения плана начинаем с W0:
- Миграция
028_physics_11_hub.sql(hub + 8 ребёнка) frontend/js/phys-fx.js— базовая инфраструктура (Ticker, util.animate, Oscillogram, SpringMass, Pendulum)- 9 stub-страниц (hub + 8 chN) с заглушками
- Регистрация в
textbooks.htmlкаталоге
Затем последовательно идём W1-W15.
Готово. Это самый большой план проекта. Курс «Физика 11» покрывает 45 параграфов в 8 главах, с собственной физической библиотекой phys-fx.js (~1000 строк), 92 боссами, 135 квизами и 9 ачивками. Стиль — единый с geom11/geom10. Время реализации — ~15-26 сессий (зависит от сложности симуляций оптики и квантовой физики).