Files
Learn_System/plans/textbooks-9/PLAN_PHYSICS_9_ADVANCED_INTERACTIVES.md

23 KiB
Raw Permalink Blame History

План: мощные интерактивы и симуляторы для Физики 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
Запоминаемость средняя высокая

⚠️ Архитектурные риски

  1. Размер бандла: 19 флагманов × ~600 LOC = ~12 KB JS на главу. Решение — ленивая загрузка через динамический <script>.
  2. CPU: симуляции в RAF могут тяжко грузить устройство. Решение — IntersectionObserver (пауза если интерактив не на экране).
  3. Запуск legacy экстрактора не должен убить эти модули — они НЕ в phys9_legacy.js, а в отдельных файлах.
  4. Тёмная тема: все цвета обязательно через PHYS9_COLORS, иначе при переключении выглядит сломанно.
  5. Совместимость с расширением задач в финалах — флагман в финале НЕ должен мешать прогресс-бару.

🎬 Запуск

Рекомендация: начать с Фазы 2 (Wave A — Кинематика). Это:

  • 4 флагмана, ~2100 LOC, ~4 коммита
  • Покрывает самую важную главу
  • Даёт сразу видимый результат
  • F2 Гонка двух тел — идеальный пилот (компактный, понятный)

После завершения Wave A — решить продолжать ли или хватит пилотов.


🔗 Связанные документы