From f2a1c6e24da821dcf6f7f8342c1ca626a153c3e9 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Fri, 29 May 2026 17:52:47 +0300 Subject: [PATCH] =?UTF-8?q?feat(phys11=20W1):=20=D0=93=D0=BB=D0=B0=D0=B2?= =?UTF-8?q?=D0=B0=201=20=C2=A71-=C2=A73=20+=20=D1=80=D0=B0=D1=81=D1=88?= =?UTF-8?q?=D0=B8=D1=80=D0=B5=D0=BD=D0=B8=D0=B5=20phys-fx.js=20(EnergyView?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit phys-fx.js (+EnergyView): - PHYS.EnergyView — график 3 кривых: W_к (красный), W_п (зелёный), W_мех=const (фиолетовый пунктир) - Использует кинетическую/потенциальную энергию для гарм. колеб.: cos², sin², сумма = 1 - Легенда в правом верхнем углу physics_11_ch1.html (~63 КБ): Архитектура geom_10_r1 (geom11-стиль): - 2-кол layout с col-side (XP card + cheat sheet + tip) - Hero cyan-градиент + кнопка 'Начать §1' - psel-grid: 6 параграфов + Финал; §1-§3 активны, §4-§6 и Финал locked - sec секции с watermark (∿, маятник, E, ☰, ∿, муз. нота, ★) - card теории + wg workshops + opt-btn кнопки §1 Колебательное движение. Гарм. колебания: - 3 теор. карточки (определение, T/ν/ω, гарм. колеб. x=Acos(ωt+φ₀)) - Инт. 1: Oscillogram с ползунками A, ω, φ (live-анимация) - Инт. 2: Расчёт T,ν,ω (5 задач input) - Инт. 3: Свойства колеб. (5 MC) - Босс §1: 5 этапов, +65 XP §2 Маятники: - 2 теор. карточки (пружинный T=2π√(m/k), матем. T=2π√(l/g)) - Инт. 1: SpringMass + Pendulum side-by-side с 4 ползунками (m,k,l,g) - Инт. 2: Расчёт T (5 input) - Инт. 3: Как изменится T (5 MC) - Босс §2: 5 этапов, +70 XP §3 Превращения энергии: - 2 теор. карточки (формулы W_к, W_п; закон сохранения W_мех=kA²/2) - Инт. 1: EnergyView с ползунками A, ω (3 кривые в реал. времени) - Инт. 2: Расчёт энергии (5 input) - Инт. 3: Превращения энергии (5 MC) - Босс §3: 5 этапов, +65 XP §4-§6 и Финал — stub-карточки 'в разработке (W2)'. LocalStorage: physics11_ch1_*, physics11_xp (общий со всем курсом) Server sync: /api/textbooks/physics-11-ch1/progress --- frontend/js/phys-fx.js | 68 ++ frontend/textbooks/physics_11_ch1.html | 1004 ++++++++++++++++++++---- 2 files changed, 930 insertions(+), 142 deletions(-) diff --git a/frontend/js/phys-fx.js b/frontend/js/phys-fx.js index 46f055f..5a53f6e 100644 --- a/frontend/js/phys-fx.js +++ b/frontend/js/phys-fx.js @@ -321,4 +321,72 @@ class Pendulum { } P.Pendulum = Pendulum; +/* ============================================================ */ +/* EnergyView — превращения энергии при гарм. колебаниях */ +/* Показывает W_к, W_п, W_мех=const на одном графике */ +/* ============================================================ */ + +class EnergyView { + constructor(container, opts){ + opts = opts || {}; + this.el = (typeof container === 'string') ? document.querySelector(container) : container; + this.W = opts.width || 560; + this.H = opts.height || 240; + this.pad = opts.pad || 36; + this.A = opts.A !== undefined ? opts.A : 1.0; + this.omega = opts.omega !== undefined ? opts.omega : 2 * Math.PI; + this.tWindow = opts.tWindow || 4; + this.paused = false; + this.t = 0; + this.history = []; // [t, Wk, Wp] + util.subscribe(this); + util.observe(this); + this.render(); + } + setA(v){ this.A = v; this.history = []; } + setOmega(v){ this.omega = v; this.history = []; } + update(dt){ + this.t += dt; + /* Для x = A cos(ωt): v = -Aω sin(ωt) + W_к = m v² / 2 = (1/2) m A² ω² sin²(ωt) + W_п = k x² / 2 = (1/2) m ω² · A² cos²(ωt) (k = m ω²) + В безразмерных: положим (1/2)mω²A² = 1 — тогда обе варьируются 0..1, сумма = 1 */ + const c = Math.cos(this.omega * this.t); + const s = Math.sin(this.omega * this.t); + const Wp = c * c; + const Wk = s * s; + this.history.push([this.t, Wk, Wp]); + while (this.history.length && this.history[0][0] < this.t - this.tWindow) this.history.shift(); + } + render(){ + if (!this.el) return; + const W = this.W, H = this.H, pad = this.pad; + const tMin = Math.max(0, this.t - this.tWindow); + const yRange = [0, 1.1]; + const ax = util.axes(W, H, pad, this.tWindow, yRange); + function path(idx, color, label){ + if (this.history.length < 2) return ''; + const pts = this.history.map(p => (ax.left + (p[0] - tMin) * (ax.right - ax.left) / this.tWindow).toFixed(1) + ',' + ax.toY(p[idx]).toFixed(1)); + return ''; + } + const pK = path.call(this, 1, '#dc2626'); + const pP = path.call(this, 2, '#16a34a'); + /* W_мех = const = 1 (горизонтальная линия) */ + const pM = ''; + /* Легенда */ + const legend = '' + + '' + + '' + + 'W кинет.' + + '' + + 'W потенц.' + + '' + + 'W мех = const' + + ''; + const svg = util.svgFrame(W, H) + ax.svg + pM + pK + pP + legend + ''; + this.el.innerHTML = svg; + } +} +P.EnergyView = EnergyView; + })(); diff --git a/frontend/textbooks/physics_11_ch1.html b/frontend/textbooks/physics_11_ch1.html index 1909364..ed7f588 100644 --- a/frontend/textbooks/physics_11_ch1.html +++ b/frontend/textbooks/physics_11_ch1.html @@ -1,179 +1,899 @@ - + - -Физика 11 · Глава 1 · Механические колебания и волны - + + +Физика 11 · Глава 1 · «Механические колебания и волны» + - + +
-
+
- - - К курсу физики 11 - +

Физика 11 · Глава 1

+
Механические колебания и волны · гармонические колебания, маятники, энергия, резонанс, волны
-
-

Глава 1. Механические колебания и волны

-
Колебательное движение, гармонические колебания, маятники, превращения энергии, резонанс, продольные и поперечные волны, звук · §1–§6
+
+ К физике 11 +
-
+
+
+ +
+

Механические колебания и волны

+

Колебания — повторяющиеся движения вокруг положения равновесия. Изучаем гармонические колебания, маятники, превращения энергии, резонанс и распространение колебаний в виде волн (включая звук).

+
+ +
+ Прогресс по главе +
+ 0% +
+
+
+
+ +
+
Параграфы главы
+
+
+ +
§ 1

Колебательное движение. Гармонические колебания

+
§ 2

Пружинный и математический маятники

+
§ 3

Превращения энергии при гарм. колебаниях

+
§ 4

Свободные и вынужденные колебания. Резонанс

+
§ 5

Распр. колебаний в упругой среде

+
§ 6

Звуковые волны

+

Финал главы 1

-
- Глава 1 -

Механические колебания и волны

-

Колебательное движение, гармонические колебания, маятники, превращения энергии, резонанс, продольные и поперечные волны, звук. Глава содержит 6 параграфов и финальный этап с боссами.

- -
- -
-
§ 1
-
-

Колебательное движение. Гармонические колебания

-

$T = \Delta t / N$, $\nu = 1/T$, $\omega = 2\pi/T$, $x = A\cos(\omega t + \varphi_0)$

-
- - Будет добавлено в волне W1-W2 -
-
-
- -
-
§ 2
-
-

Пружинный и математический маятники

-

$T_{пр} = 2\pi\sqrt{m/k}$, $T_{мат} = 2\pi\sqrt{l/g}$

-
- - Будет добавлено в волне W1-W2 -
-
-
- -
-
§ 3
-
-

Превращения энергии при гарм. колебаниях

-

$W_{мех} = kA^2/2 = m\omega^2 A^2/2$

-
- - Будет добавлено в волне W1-W2 -
-
-
- -
-
§ 4
-
-

Свободные и вынужденные колебания. Резонанс

-

Затухание, диссипация, $\omega_{рез} \approx \omega_0$

-
- - Будет добавлено в волне W1-W2 -
-
-
- -
-
§ 5
-
-

Распространение колебаний в упругой среде. Продольные и поперечные волны

-

$\lambda = vT$

-
- - Будет добавлено в волне W1-W2 -
-
-
- -
-
§ 6
-
-

Звуковые волны

-

16 Гц – 20 кГц, $v_{зв}^{возд} \approx 340$ м/с

-
- - Будет добавлено в волне W1-W2 -
-
-
-
- - - +
-
- Физика — 11 класс · Глава 1 · LearnSpace -
+
Интерактивный учебник «Физика 11» · Глава 1 · «Механические колебания и волны» · LearnSpace
+
Достижение!
+ +