From a09616450fb7787817a9562df01390561cc261a6 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Fri, 29 May 2026 18:15:00 +0300 Subject: [PATCH] =?UTF-8?q?feat(phys11=20W3):=20=D0=93=D0=BB=D0=B0=D0=B2?= =?UTF-8?q?=D0=B0=202=20=C2=A77-=C2=A79=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(LCcircuit,?= =?UTF-8?q?=20ACgen,=20Transformer)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit phys-fx.js (+3 электротехнических компонента): - PHYS.LCcircuit: колебательный контур со схемой C↔L, провода, стрелка тока, заряды на пластинах (меняют знак), энергетические столбцы W_C и W_L, формула T=2π√(LC) с актуальным значением - PHYS.ACgen: генератор переменного тока — слева вращающаяся рамка в B, справа график U(t)=U₀sin(ωt) с историей - PHYS.Transformer: схема трансформатора с сердечником, обмотки N₁, N₂, входное U₁, расчётное U₂, коэф. трансформации k, отметка повышающий/понижающий physics_11_ch2.html (~63 КБ, violet-тема): - 2-кол layout с col-side, hero violet-градиент - psel-grid 8 карточек (§7-§13 + Финал); §7-§9 активны - Watermarks: LC, ∿, ≡, ⚡, ⚙, λ, ☣, ★ §7 Колебательный контур. Формула Томсона: - 3 теор. карточки (контур, формула Томсона, превращения энергии) - Инт. 1: LCcircuit с ползунками L (1-100 мГн), C (0.1-10 мкФ) - Инт. 2: расчёт T, ν (5 input) - Инт. 3: аналогии и свойства (5 MC) - Босс §7: 5 этапов, +70 XP §8 Вынужденные ЭМ колеб. Переменный ток: - 2 теор. карточки (генератор, действ. значения I₀/√2) - Инт. 1: ACgen (вращ. рамка → синусоида) с ползунком ω - Инт. 2: расчёт I/I₀, U/U₀ (5 input) - Инт. 3: теория действующих значений (5 MC) - Босс §8: 5 этапов, +70 XP §9 Трансформатор: - 2 теор. карточки (устройство, коэф. трансформации, I₁U₁=I₂U₂) - Инт. 1: Transformer с ползунками N₁ (50-1000), N₂ (10-1000), U₁ (12-10000 В) - Инт. 2: расчёт U₂, I₂, k (5 input) - Инт. 3: повышающий/понижающий (5 MC) - Босс §9: 5 этапов, +70 XP §10-§13, Финал — stub-карточки 'в разработке (W4)'. LocalStorage: physics11_ch2_*, общий physics11_xp Server sync: /api/textbooks/physics-11-ch2/progress --- frontend/js/phys-fx.js | 237 ++++++ frontend/textbooks/physics_11_ch2.html | 1031 ++++++++++++++++++++---- 2 files changed, 1114 insertions(+), 154 deletions(-) diff --git a/frontend/js/phys-fx.js b/frontend/js/phys-fx.js index 43953d0..4bd9793 100644 --- a/frontend/js/phys-fx.js +++ b/frontend/js/phys-fx.js @@ -595,4 +595,241 @@ class LongitudinalWave { } P.LongitudinalWave = LongitudinalWave; +/* ============================================================ */ +/* LCcircuit — колебательный контур */ +/* q(t) = Q0 cos(ωt), i(t) = -Q0 ω sin(ωt), ω = 1/√(LC) */ +/* ============================================================ */ + +class LCcircuit { + constructor(container, opts){ + opts = opts || {}; + this.el = (typeof container === 'string') ? document.querySelector(container) : container; + this.W = opts.width || 480; + this.H = opts.height || 280; + this.L = opts.L !== undefined ? opts.L : 0.01; /* Гн */ + this.C = opts.C !== undefined ? opts.C : 1e-6; /* Ф */ + this.Q0 = opts.Q0 !== undefined ? opts.Q0 : 1.0; /* нормированный заряд */ + this.color = opts.color || '#7c3aed'; + this.paused = false; + this.t = 0; + util.subscribe(this); + util.observe(this); + this.render(); + } + setL(L){ this.L = Math.max(1e-4, L); } + setC(C){ this.C = Math.max(1e-9, C); } + period(){ return 2 * Math.PI * Math.sqrt(this.L * this.C); } + freq(){ return 1 / this.period(); } + update(dt){ this.t += dt; } + render(){ + if (!this.el) return; + const W = this.W, H = this.H; + const T = this.period(); + const omega = 2 * Math.PI / T; + const phase = omega * this.t; + const q = this.Q0 * Math.cos(phase); + const i = -this.Q0 * omega * Math.sin(phase); + /* Геометрия: C слева вверху, L справа вверху, соединены проводами */ + const cx = W / 2, cy = H / 2 - 20; + const cap = {x: cx - 100, y: cy}; + const ind = {x: cx + 100, y: cy}; + /* Energies (для подсветки): W_C ~ q², W_L ~ i² */ + const WC = q * q; + const WL = (i / omega) * (i / omega); /* в норм. единицах */ + const total = WC + WL; + const cOpacity = 0.3 + 0.7 * WC / total; + const lOpacity = 0.3 + 0.7 * WL / total; + let svg = util.svgFrame(W, H, {bg:'#f8fafc'}); + /* Провода */ + const wireY1 = cy - 50, wireY2 = cy + 50; + svg += ''; + svg += ''; + /* Конденсатор: две параллельные пластины */ + const plateW = 36; + svg += ''; + svg += ''; + svg += ''; + svg += ''; + /* Заряды на пластинах */ + const sign = q > 0 ? 1 : -1; + const topCh = sign > 0 ? '+' : '−'; + const botCh = sign > 0 ? '−' : '+'; + const qAbsNorm = Math.abs(q) / this.Q0; + svg += '' + topCh + ''; + svg += '' + botCh + ''; + svg += 'C'; + /* Индуктор: петли */ + const coils = 4, coilR = 8, coilW = 64; + let coilPath = 'M ' + (ind.x - coilW/2) + ' ' + ind.y; + for (let k = 0; k < coils; k++){ + const x0 = ind.x - coilW/2 + (coilW / coils) * k; + coilPath += ' a ' + coilR + ' ' + coilR + ' 0 0 1 ' + (coilW / coils) + ' 0'; + } + svg += ''; + svg += 'L'; + /* Стрелка тока */ + const iDir = i > 0 ? 1 : -1; + const iAbs = Math.abs(i) / (this.Q0 * omega); + if (iAbs > 0.05){ + const aY = wireY1 - 14; + const aX1 = cx - 30 * iDir; + const aX2 = cx + 30 * iDir; + svg += ''; + svg += ''; + svg += 'i'; + } + /* Энергетические столбцы */ + const eY = H - 36, eH = 24; + svg += ''; + svg += ''; + svg += 'W_C'; + svg += ''; + svg += ''; + svg += 'W_L'; + /* Подпись периода */ + const Tdisp = T < 1e-3 ? (T * 1e6).toFixed(1) + ' мкс' : (T * 1e3).toFixed(2) + ' мс'; + svg += 'T = 2π√(LC) = ' + Tdisp + ''; + svg += ''; + this.el.innerHTML = svg; + } +} +P.LCcircuit = LCcircuit; + +/* ============================================================ */ +/* ACgen — генератор переменного тока (вращающаяся рамка в B) */ +/* ============================================================ */ + +class ACgen { + constructor(container, opts){ + opts = opts || {}; + this.el = (typeof container === 'string') ? document.querySelector(container) : container; + this.W = opts.width || 540; + this.H = opts.height || 240; + this.omega = opts.omega !== undefined ? opts.omega : 2 * Math.PI; /* рад/с */ + this.U0 = opts.U0 !== undefined ? opts.U0 : 1.0; + this.color = opts.color || '#7c3aed'; + this.tWindow = opts.tWindow || 4; + this.paused = false; + this.t = 0; + this.history = []; + util.subscribe(this); + util.observe(this); + this.render(); + } + setOmega(w){ this.omega = w; this.history = []; } + update(dt){ + this.t += dt; + this.history.push([this.t, this.U0 * Math.sin(this.omega * this.t)]); + 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; + /* Левая часть: рамка в магнитном поле; правая: график U(t) */ + const leftW = 200; + const rightLeft = leftW + 10; + let svg = util.svgFrame(W, H, {bg:'#f8fafc'}); + /* Магнитное поле (стрелки B) */ + svg += ''; + for (let i = 0; i < 5; i++){ + const x = 20 + i * 40; + svg += ''; + } + svg += ''; + svg += ''; + svg += 'B'; + /* Вращающаяся рамка: эллипс, отображающий проекцию прямоугольника */ + const fx = 110, fy = H / 2; + const phi = this.omega * this.t; + const rx = 40 * Math.abs(Math.cos(phi)); + const ry = 30; + svg += ''; + /* Ось вращения */ + svg += ''; + /* Контакт скользящих колец (схема) */ + svg += ''; + svg += ''; + /* График U(t) — справа */ + const gPad = 26; + const tMin = Math.max(0, this.t - this.tWindow); + const ax = util.axes(W - rightLeft, H, gPad, this.tWindow, [-this.U0 * 1.2, this.U0 * 1.2]); + svg += '' + ax.svg + ''; + if (this.history.length > 1){ + const pts = this.history.map(([t, y]) => (rightLeft + ax.left + (t - tMin) * (ax.right - ax.left) / this.tWindow).toFixed(1) + ',' + ax.toY(y).toFixed(1)); + svg += ''; + } + /* Подпись */ + svg += 'U(t) = U₀ sin(ωt)'; + svg += ''; + this.el.innerHTML = svg; + } +} +P.ACgen = ACgen; + +/* ============================================================ */ +/* Transformer — схема трансформатора с расчётом */ +/* ============================================================ */ + +class Transformer { + constructor(container, opts){ + opts = opts || {}; + this.el = (typeof container === 'string') ? document.querySelector(container) : container; + this.W = opts.width || 520; + this.H = opts.height || 240; + this.N1 = opts.N1 || 200; + this.N2 = opts.N2 || 50; + this.U1 = opts.U1 || 220; + this.color = opts.color || '#7c3aed'; + this.render(); + } + setN1(n){ this.N1 = Math.max(1, n|0); this.render(); } + setN2(n){ this.N2 = Math.max(1, n|0); this.render(); } + setU1(u){ this.U1 = u; this.render(); } + update(){ /* статика */ } + render(){ + if (!this.el) return; + const W = this.W, H = this.H; + const k = this.N1 / this.N2; + const U2 = this.U1 / k; + const cy = H / 2; + let svg = util.svgFrame(W, H, {bg:'#f8fafc'}); + /* Сердечник трансформатора (прямоугольник с вырезом) */ + const coreL = 110, coreR = W - 110; + svg += ''; + svg += ''; + /* Первичная обмотка слева */ + const coil1X = coreL + 24; + for (let i = 0; i < 6; i++){ + const y = cy - 50 + i * 16; + svg += ''; + } + /* Вторичная обмотка справа */ + const coil2X = coreR - 24; + /* Адаптируем число витков визуально (max 8 для удобства) */ + const visTurns2 = Math.max(2, Math.min(10, Math.round(6 * this.N2 / this.N1))); + for (let i = 0; i < visTurns2; i++){ + const y = cy - 50 + i * (100 / visTurns2); + svg += ''; + } + /* Провода-выходы первичной */ + svg += ''; + svg += ''; + /* Провода вторичной */ + svg += ''; + svg += ''; + /* Подписи N1, N2, U1, U2 */ + svg += 'N₁ = ' + this.N1 + ''; + svg += 'N₂ = ' + this.N2 + ''; + svg += 'N₂ = ' + this.N2 + ''; + svg += 'U₁ = ' + this.U1.toFixed(0) + ' В'; + svg += 'U₂ = ' + U2.toFixed(1) + ' В'; + /* Подпись коэф. */ + svg += 'k = N₁/N₂ = ' + k.toFixed(2) + ''; + svg += '' + (k > 1 ? 'понижающий' : 'повышающий') + ''; + svg += ''; + this.el.innerHTML = svg; + } +} +P.Transformer = Transformer; + })(); diff --git a/frontend/textbooks/physics_11_ch2.html b/frontend/textbooks/physics_11_ch2.html index 8f29a59..122472d 100644 --- a/frontend/textbooks/physics_11_ch2.html +++ b/frontend/textbooks/physics_11_ch2.html @@ -1,191 +1,914 @@ - + - -Физика 11 · Глава 2 · Электромагнитные колебания и волны - +Физика 11 · Глава 2 · «Электромагнитные колебания и волны» + - + +
-
+
- - - К курсу физики 11 - +

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

+
Электромагнитные колебания и волны · колебательный контур, переменный ток, трансформатор, ЭМ волны, шкала ЭМ
-
-

Глава 2. Электромагнитные колебания и волны

-
Колебательный контур, формула Томсона, переменный ток, трансформатор, передача электроэнергии, ЭМ волны · §7–§13
+
+ К физике 11 +
-
+
+
+ +
+

Электромагнитные колебания и волны

+

Аналогия механических колебаний — электромагнитные. Колебательный контур, переменный ток, трансформаторы, передача электроэнергии и шкала ЭМ волн от радио до γ-излучения.

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

Колебательный контур. Формула Томсона

+
§ 8

Вынужденные ЭМ колеб. Переменный ток

+
§ 9

Трансформатор

+
§ 10

Производство и передача электроэнергии

+
§ 11

Экологические проблемы энергетики

+
§ 12

ЭМ волны. Шкала ЭМ волн

+
§ 13

Действие ЭМ излучения на живые организмы

+

Финал главы 2

-
- Глава 2 -

Электромагнитные колебания и волны

-

Колебательный контур, формула Томсона, переменный ток, трансформатор, передача электроэнергии, ЭМ волны. Глава содержит 7 параграфов и финальный этап с боссами.

- -
- -
-
§ 7
-
-

Колебательный контур. Свободные ЭМ колебания. Формула Томсона

-

$T = 2\pi\sqrt{LC}$

-
- - Будет добавлено в волне W3-W4 -
-
-
- -
-
§ 8
-
-

Вынужденные ЭМ колебания. Переменный ток

-

$i = I_0\sin(\omega t)$, $I = I_0/\sqrt{2}$

-
- - Будет добавлено в волне W3-W4 -
-
-
- -
-
§ 9
-
-

Преобразование переменного тока. Трансформатор

-

$k = N_1/N_2 = U_1/U_2$

-
- - Будет добавлено в волне W3-W4 -
-
-
- -
-
§ 10
-
-

Производство, передача и потребление электроэнергии

-

ГЭС, ТЭС, АЭС; потери $P = I^2 R$

-
- - Будет добавлено в волне W3-W4 -
-
-
- -
-
§ 11
-
-

Экологические проблемы производства и передачи электроэнергии

-

ВЭС, СЭС, гео- и приливные

-
- - Будет добавлено в волне W3-W4 -
-
-
- -
-
§ 12
-
-

ЭМ волны. Шкала ЭМ волн

-

$c = 3 \cdot 10^8$ м/с

-
- - Будет добавлено в волне W3-W4 -
-
-
- -
-
§ 13
-
-

Действие ЭМ излучения на живые организмы

-

Ионизирующее vs неионизирующее

-
- - Будет добавлено в волне W3-W4 -
-
-
-
- - - +
-
- Физика — 11 класс · Глава 2 · LearnSpace -
+
Интерактивный учебник «Физика 11» · Глава 2 · «Электромагнитные колебания и волны» · LearnSpace
+
Достижение!
+ +