23 KiB
План: мощные интерактивы и симуляторы для Физики 9
Дата: 2026-05-30 Контекст: третий план, дополняет PLAN_PHYSICS_9_VISUAL.md (фазы 1-3 сделаны) и PLAN_PHYSICS_9_PER_PARAGRAPH.md (Wave A-G сделаны). Цель: добавить флагманские интерактивы — крупные симуляторы / мини-игры / физические песочницы. По 1-3 на главу. Каждый = «вау-эффект», который запомнится школьнику.
Принцип «флагмана»
Не очередной slider+калькулятор, а:
- Полноэкранный интерактив (~ 600×500 px)
- Анимация в реальном времени (
requestAnimationFrame) - Управление мышкой / клавиатурой (drag, click, keyboard)
- Real-time графики связанные с симуляцией
- Сохранение результатов в localStorage (рекорды)
- Геймификация — score, баллы, медали
⭐ Глава 1 · Кинематика — 4 флагмана
F1. Конструктор траектории
§5 (путь vs перемещение)
- Пользователь рисует мышкой на canvas произвольную кривую.
- Программа автоматически считает:
- Путь
s— длина кривой (через сумму отрезков) - Перемещение
|\Delta\vec r|— расстояние start→end - Отношение
s/|\Delta\vec r|
- Путь
- Кнопка «Закрыть петлю» — соединяет конец с началом,
\Delta r = 0. - Шаблоны: прямая, дуга 180°, полная окружность, зигзаг.
- Wow: видно, что
s \ge |\Delta\vec r|, всегда. - ~400 LOC
F2. Гонка двух тел
§9 (встреча двух тел)
- Симуляция гонки: два автомобиля с разными
v_0,aна одной трассе. - Пользователь меняет параметры до старта, нажимает «Старт».
- Анимация: автомобили едут по трассе.
- Real-time графики
x_1(t)иx_2(t)строятся слева от трассы. - Момент встречи — подсвечен пересечением графиков + звуковой сигнал.
- Кнопка «Случайный сценарий» для тренировки.
- Wow: одновременно видна симуляция и математическая зависимость.
- ~500 LOC
F3. Тахометр + спидометр + одометр
§11-13 (равноуск. движение)
- Виртуальный автомобиль с 3 связанными приборами:
- Тахометр (показывает
a) - Спидометр (показывает
v) - Одометр (показывает
\Delta xза время)
- Тахометр (показывает
- Управление: педаль газа (slider
a) и педаль тормоза. - Реалистичная динамика: при отпускании газа — медленное торможение (трение). При тормозе — резкое.
- Графики
v(t)иa(t)записываются. - Цель: разогнаться до 60 км/ч и затормозить за ~50 м (как в реальных тестах).
- Wow: игра в автогонщика + интуитивное понимание кинематики.
- ~600 LOC
F4. Орбитальный конструктор
§16-18 (Кеплер, окружность)
- Симулятор «запусти спутник»: Земля в центре, мышью тянешь стрелку
\vec vначальной скорости и отпускаешь. - Спутник летит по орбите согласно Ньютону+Кеплеру.
- Цвет траектории: круг (идеал) / эллипс / парабола / убегание.
- Подписи:
T,a, эксцентриситет. - Слайдер «масса Земли» — меняет тяготение.
- Wow: видишь, что нужна определённая скорость для круговой орбиты.
- ~600 LOC
⭐ Глава 2 · Динамика — 4 флагмана
F5. Машина Атвуда
§19-22 (динамика связанных тел)
- Виртуальная установка: две массы
m_1,m_2через блок на нити. - Slider'ы:
m_1,m_2,\mu(трение в блоке). - Запуск: бо́льшая масса опускается, меньшая поднимается.
- Реальная физика:
a = (m_1 - m_2)g/(m_1+m_2). - Подсветка сил:
\vec Tнатяжение,\vec gвес. - График
v(t)— линейный (равноуск). - Wow: классический школьный опыт в виртуале.
- ~500 LOC
F6. Симулятор скоростной дороги
§20 (трение), §22 (F=ma)
- 2D-вид: автомобиль на дороге с разным покрытием (асфальт сухой/мокрый, лёд, гравий).
- Slider
\muавтоматически по покрытию. - Включаем тормоз: автомобиль скользит на расстояние
s = v^2 / (2 \mu g). - При большом
v+ малом\mu— занос. - Wow: видно, насколько лёд опасен — путь торможения растёт в 5 раз.
- ~400 LOC
F7. Лифт с динамометром
§24 (вес, перегрузка, невесомость)
- Лифт в высоком здании. На полу динамометр с грузом 1 кг.
- Кнопки: «Этаж 1», «Этаж 10», «Аварийный спуск».
- При движении видно показания динамометра и анимацию.
- Параметры:
a_{разгон},v_{макс}настраиваются. - График
P(t)записывается. - Особый режим: «свободное падение» → невесомость, груз висит.
- Wow: наглядное переживание перегрузки.
- ~500 LOC
F8. Полигон трения
§20
- Шарик скатывается с пружинной катапульты по плоскости с разными зонами (
\muменяется через каждые 30 см). - Пользователь рисует профиль зон (drag&drop материалов: лёд, асфальт, мел).
- Шарик скользит, замедляется в зависимости от
\mu. - Цель: попасть в красную мишень.
- Калибровка через начальную скорость катапульты.
- Wow: инженерная задача про разные покрытия.
- ~600 LOC
⭐ Глава 3 · Статика — 2 флагмана
F9. Конструктор моста
§25-28 (равновесие, рычаг, момент)
- На canvas — балка на 2 опорах.
- Пользователь добавляет грузы перетаскиванием (drag) в любую точку балки.
- Программа считает реакции опор
N_1,N_2через систему 2 уравнений (\Sigma F = 0,\Sigma M = 0). - При перегрузке — балка прогибается / ломается.
- Цель: построить «мост» который выдержит автомобиль (фиксированный груз 1000 Н) в любой точке.
- Wow: инженерный квест.
- ~700 LOC
F10. Виртуальный аквариум
§29-30 (Архимед, плавание)
- Большой аквариум на canvas.
- Слева — палитра тел разной плотности (дерево, пенопласт, пластик, металл, золото).
- Drag&drop тел в аквариум: правильная физика — плавают, тонут, висят.
- Slider жидкости: вода → масло → ртуть.
- При смене жидкости тела перераспределяются (золото в ртути плавает!).
- Wow: интерактивный «фокус» с ртутью.
- ~500 LOC
⭐ Глава 4 · Импульс / Энергия / Колебания — 4 флагмана
F11. Бильярдная физика
§31-32 (ЗСИ)
- 2D-бильярдный стол с 1 битком + 4 шарами.
- Перетаскивание прицела + slider «сила удара».
- Реальная физика упругих ударов между шарами.
- Real-time векторы импульса до/после.
- Цель: сделать карамболь (тройной удар).
- Wow: игра + физика.
- ~700 LOC
F12. Американские горки
§35 (ЗСМЭ)
- Пользователь рисует профиль горки (мышкой задаёт высоты).
- Шарик скатывается с начала, физика:
E = E_k + E_p =const (без трения) или с диссипацией. - Real-time графики:
E_p,E_k,E_{total}на 3-х кривых. - Можно добавить «петлю» (loop) — расчёт минимальной высоты старта.
- Slider «трение» — графики
E_{total}спадают. - Wow: «спроектируй сам аттракцион».
- ~700 LOC
F13. Маятник Фуко
§36 (колебания + вращение)
- Длинный математический маятник, его плоскость колебаний поворачивается относительно земли из-за вращения.
- Slider: широта (на полюсе вращается за 24 ч, на экваторе не вращается).
- Анимация: вид сверху, ход маятника записывает «розетку».
- Wow: красивая, исторически значимая демонстрация (Париж, 1851).
- ~500 LOC
F14. Спектр колебаний (резонанс)
§36
- Пружинный маятник с внешней периодической силой.
- Slider частоты внешней силы
\nu_{внеш}. - Когда
\nu_{внеш} \approx \nu_{собств}— амплитуда колебаний нарастает. - График амплитуды от
\nu_{внеш}— классический резонансный пик. - Аналог: «настройка струны гитары», «разрушение моста».
- Wow: объясняет, почему рота не марширует через мост.
- ~500 LOC
🔬 Глава 5 · Лаборатория — 3 флагмана-практикума
F15. Виртуальная лаборатория свободного падения
ЛР 6
- Стробоскопический эффект: тело падает, на нём отметки через равные промежутки.
- Пользователь измеряет расстояния линейкой (виртуальная линейка на canvas).
- Таблица заполняется автоматически из измерений.
- Расчёт
gпо серии 5-6 измерений + погрешность. - Wow: реальный лабораторный отчёт получается за 5 минут.
- ~500 LOC
F16. Лаборатория законов сохранения
ЛР 7
- Тележка на наклонной + датчики скорости.
- Запускается с разных высот, измерения автоматически.
- Серия из 5 запусков:
h_1, v_1;h_2, v_2; ... - Расчёт КПД через сравнение
E_p^{0}иE_k^{внизу}. - График «отклонение от ЗСМЭ vs скорость» — видна систематическая ошибка от трения.
- Wow: настоящие лабораторные навыки.
- ~600 LOC
F17. Лаборатория маятника
ЛР 4, ЛР 12
- Несколько маятников рядом: математ., пружинный, физический.
- Запуск синхронно, измерение
Tавтоматически. - Цель: подобрать
lтак, чтобыT = 2с (секундный маятник). - Дополнительно: изменение
g(на Луне, Марсе) → как меняетсяT. - Wow: «найди
gна Марсе по периоду маятника». - ~500 LOC
🏆 Финал курса — 2 флагмана
F18. Магистр-симулятор
- Большой интерактив «построй сценарий движения тела»:
- Точка А → точка Б через любые этапы (равном., равноуск., свободное падение, …).
- Пользователь собирает цепочку этапов как конструктор LEGO.
- Программа автоматически рисует
x(t),v(t),a(t). - Проверка корректности сценария: «достижимо ли?»
- Сохранение в галерею (localStorage), share-кнопка (URL с сценарием в параметрах).
- Wow: портфолио своих физических задач.
- ~800 LOC
F19. Финальный босс — «Полёт ракеты»
- Симулятор взлёта ракеты с Земли:
- Параметры: масса ракеты, масса топлива,
q(скорость истечения газов),G. - Реальная физика: уравнение Циолковского + сила тяжести + сопротивление воздуха.
- График
h(t),v(t), остаток топлива. - Цель: вывести спутник на орбиту 400 км (МКС).
- Wow: реальная инженерная задача, объединяющая ВСЁ из курса.
- ~1000 LOC
📊 Сводка флагманов
| # | Название | Глава | LOC | Приоритет |
|---|---|---|---|---|
| F1 | Конструктор траектории | §5 | 400 | ⭐ |
| F2 | Гонка двух тел | §9 | 500 | 🔥 |
| F3 | Тахометр + спидометр | §11-13 | 600 | 🔥 |
| F4 | Орбитальный конструктор | §16-18 | 600 | 🔥 |
| F5 | Машина Атвуда | §19-22 | 500 | ⭐ |
| F6 | Симулятор дороги | §20 | 400 | ⭐ |
| F7 | Лифт с динамометром | §24 | 500 | ⭐ |
| F8 | Полигон трения | §20 | 600 | 💡 |
| F9 | Конструктор моста | §25-28 | 700 | 🔥 |
| F10 | Виртуальный аквариум | §29-30 | 500 | ⭐ |
| F11 | Бильярдная физика | §31-32 | 700 | 🔥 |
| F12 | Американские горки | §35 | 700 | 🔥 |
| F13 | Маятник Фуко | §36 | 500 | ⭐ |
| F14 | Резонанс | §36 | 500 | ⭐ |
| F15 | Лаб. свободное падение | ЛР 6 | 500 | ⭐ |
| F16 | Лаб. ЗСЭ | ЛР 7 | 600 | ⭐ |
| F17 | Лаб. маятника | ЛР 4,12 | 500 | ⭐ |
| F18 | Магистр-симулятор | Финал курса | 800 | 🔥 |
| F19 | Полёт ракеты | Финал курса | 1000 | 🔥 |
| Σ | 19 флагманов | ~10 600 LOC |
🔥 Критично (8): F2, F3, F4, F9, F11, F12, F18, F19 ⭐ Важно (10): F1, F5, F6, F7, F10, F13, F14, F15, F16, F17 💡 Nice-to-have (1): F8
🛠 Технологический стек для флагманов
Базовые библиотеки (без внешних зависимостей)
- Canvas 2D — для большинства симуляций (производительно)
- SVG — для статических интерактивов (легко стилизуется, тёмная тема)
- Web Audio API — для звуковых эффектов (опционально)
- requestAnimationFrame — с RAF-реестром для cleanup при unmount
- localStorage — для сохранения настроек, рекордов
- Web Workers — для тяжёлых вычислений (F4 орбита, F19 ракета)
Архитектурное правило
Каждый флагман — отдельный модуль phys9_flag_FN_name.js в frontend/js/flagships/. Подключается только в нужном параграфе через ленивую загрузку (динамический <script>).
Шаблон файла:
// phys9_flag_F2_race.js — Гонка двух тел (§9)
(function(){
'use strict';
const C = () => window.PHYS9_COLORS || {};
let _running = false, _raf = 0;
function init(secId){
const box = document.getElementById(secId+'-body');
if (!box || box.querySelector('.flag-F2')) return;
// Создать UI...
// Запустить sim...
}
function cleanup(){ if(_raf) cancelAnimationFrame(_raf); _raf = 0; _running = false; }
window.PHYS9_FLAGS = window.PHYS9_FLAGS || {};
window.PHYS9_FLAGS.F2 = { init: init, cleanup: cleanup };
})();
Подключение
В phys9_chN_widgets.js для соответствующего параграфа:
function add_p9(){
// ... обычный виджет (slider+калькулятор)
if (window.PHYS9_FLAGS && window.PHYS9_FLAGS.F2) {
appendTo('p9', wgWrapper('p9-flag', 'ФЛАГМАН', 'Гонка двух тел', '...', '<div id="flag-F2-host"></div>'));
window.PHYS9_FLAGS.F2.init('p9');
}
}
🚀 Порядок реализации
Фаза 1 — Подготовка инфраструктуры (1 коммит)
- Создать каталог
frontend/js/flagships/ - Создать
phys9_flag_base.js— общие хелперы (RAF-реестр, canvas init, controls) - Создать CSS
frontend/css/phys9-flagships.css— стили карточек, кнопок, прогресс-баров - Документ-шаблон для каждого флагмана
Фаза 2 — Wave A (флагманы Главы 1): F1, F2, F3, F4 (4 коммита, ~2100 LOC)
Целевая глава: Кинематика
- F1 Конструктор траектории (1 коммит)
- F2 Гонка двух тел (1 коммит)
- F3 Тахометр + спидометр (1 коммит)
- F4 Орбитальный конструктор (1 коммит, ~600 LOC, требует Web Worker)
Фаза 3 — Wave B (Глава 2): F5, F6, F7, F8 (4 коммита, ~2000 LOC)
- F5 Машина Атвуда
- F6 Симулятор дороги
- F7 Лифт с динамометром
- F8 Полигон трения (опционально)
Фаза 4 — Wave C (Глава 3): F9, F10 (2 коммита, ~1200 LOC)
- F9 Конструктор моста (большой, drag&drop, рассчёт реакций опор)
- F10 Виртуальный аквариум
Фаза 5 — Wave D (Глава 4): F11, F12, F13, F14 (4 коммита, ~2400 LOC)
- F11 Бильярдная физика
- F12 Американские горки
- F13 Маятник Фуко
- F14 Резонанс
Фаза 6 — Wave E (Лаборатория): F15, F16, F17 (3 коммита, ~1600 LOC)
- F15 Свободное падение
- F16 ЗСЭ
- F17 Маятник
Фаза 7 — Финал курса: F18, F19 (2 коммита, ~1800 LOC)
- F18 Магистр-симулятор
- F19 Полёт ракеты
Фаза 8 — Полировка (1 коммит)
- Все RAF имеют пауза/сброс
- Все симуляции корректно убираются при
goToдругого § - Тёмная тема: все цвета через PHYS9_COLORS
- Респонсив: max-width 800px, height auto
- a11y: aria-label на интерактивных canvas
📈 Оценка прироста качества
До: 48 виджетов уровня «slider + калькулятор», тёмная тема, прогресс-бары.
После: 19 флагманов с настоящей симуляцией, интерактивом, геймификацией.
| Метрика | До | После |
|---|---|---|
| Engagement time per § | ~2 мин | ~10 мин |
| Уникальных интерактивов | 48 | 48 + 19 = 67 |
| LOC | ~2 000 | ~12 600 |
| Бонусы (XP) | 600 | ~1500 |
| Запоминаемость | средняя | высокая |
⚠️ Архитектурные риски
- Размер бандла: 19 флагманов × ~600 LOC = ~12 KB JS на главу. Решение — ленивая загрузка через динамический
<script>. - CPU: симуляции в RAF могут тяжко грузить устройство. Решение —
IntersectionObserver(пауза если интерактив не на экране). - Запуск legacy экстрактора не должен убить эти модули — они НЕ в
phys9_legacy.js, а в отдельных файлах. - Тёмная тема: все цвета обязательно через PHYS9_COLORS, иначе при переключении выглядит сломанно.
- Совместимость с расширением задач в финалах — флагман в финале НЕ должен мешать прогресс-бару.
🎬 Запуск
Рекомендация: начать с Фазы 2 (Wave A — Кинематика). Это:
- 4 флагмана, ~2100 LOC, ~4 коммита
- Покрывает самую важную главу
- Даёт сразу видимый результат
- F2 Гонка двух тел — идеальный пилот (компактный, понятный)
После завершения Wave A — решить продолжать ли или хватит пилотов.
🔗 Связанные документы
- PLAN_PHYSICS_9.md — исходный план учебника
- PLAN_PHYSICS_9_VISUAL.md — горизонтальные фазы (Phase 1-3 done)
- PLAN_PHYSICS_9_PER_PARAGRAPH.md — детальный (Wave A-G done)
- PLAN_PHYSICS_10.md — образец крупных симуляций