Files
Learn_System/plans/textbooks-11/PLAN_FIZIKA_11.md
T
Maxim Dolgolyov a24c334730 docs(plans): убраны лабораторные работы из плана Физика 11
- Удалён physics_11_labs.html из списка файлов
- Удалена секция 'Лабораторный эксперимент' в хабе и wireframe
- Убрана волна W15 'physics_11_labs.html — 9 лабораторных работ' (W16 polish → W15)
- Обновлены счётчики: 10 файлов → 9, ~28 сессий → ~26, 16 волн → 15
- Из итогов убрана строка про 9 лабораторок
2026-05-29 17:35:51 +03:00

34 KiB
Raw Blame History

План реализации: Физика 11 (Беларусь, Жилко/Маркович/Сокольский, 2021)

Источник: fizika_11kl_zhilko_rus_2021.pdf (286 стр. + приложение) Авторы: В. В. Жилко, Л. Г. Маркович, А. А. Сокольский Издательство: «Народная асвета», Минск, 2021 Уровень: Базовый + повышенный (с электронным приложением)

Это выпускной курс физики, охватывающий почти всю современную физику от классических колебаний до элементарных частиц. Главные вызовы:

  1. Анимированные осциллограммы и симуляторы маятников/контуров — нужна новая библиотека phys-fx.js поверх SVG/Canvas с реальным временем.
  2. Лучевая оптика (§14-§23): тонкие линзы, сферические зеркала, дифракционные решётки — нужен интерактивный трассировщик лучей.
  3. Квантовая физика (§27-§44): фотоэффект, Бор, ядро — много новых SVG-моделей (атом, ядро, спектры).
  4. 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 на мобиле).

Дополнительные секции хаба

  1. Карта прогресса — большая визуальная карта от Колебаний до Картины Мира с галочками
  2. Шпаргалка курса — 8 cheat-cards с ключевыми формулами по главам
  3. Финал курса (аккордеон):
    • 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. Каждый § — минимум 1 интерактивная симуляция через phys-fx.js (живая анимация).
  2. Все формулы — через KaTeX с onload-инициализацией (паттерн geom11).
  3. Дизайн-стиль идентичен geom11: 2-кол layout, .psel-grid, .sec секции, .wg workshops, sidebar с XP/cheat sheet.
  4. 8 тем глав с уникальными цветовыми палитрами (см. таблицу выше).
  5. Прогресс синхронизируется с сервером через /api/textbooks/physics-11-chN/progress.
  6. phys-fx.js без зависимостей — чистый JS + SVG + Canvas. Никаких Three.js / D3.
  7. Анимации экономят CPU: один requestAnimationFrame на страницу, симуляции получают dt извне.
  8. Звук работает только по клику (политика автоплея браузеров) — для §6.
  9. RayTracer должен работать с тачами на мобильных (drag через pointer events).
  10. Лабораторки — отдельная страница, без боссов (это методичка).

🔬 Особенности 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:

  1. Миграция 028_physics_11_hub.sql (hub + 8 ребёнка)
  2. frontend/js/phys-fx.js — базовая инфраструктура (Ticker, util.animate, Oscillogram, SpringMass, Pendulum)
  3. 9 stub-страниц (hub + 8 chN) с заглушками
  4. Регистрация в textbooks.html каталоге

Затем последовательно идём W1-W15.


Готово. Это самый большой план проекта. Курс «Физика 11» покрывает 45 параграфов в 8 главах, с собственной физической библиотекой phys-fx.js (~1000 строк), 92 боссами, 135 квизами и 9 ачивками. Стиль — единый с geom11/geom10. Время реализации — ~15-26 сессий (зависит от сложности симуляций оптики и квантовой физики).