diff --git a/frontend/textbooks/physics_10_ch3.html b/frontend/textbooks/physics_10_ch3.html
index ea24aa4..1f85ab8 100644
--- a/frontend/textbooks/physics_10_ch3.html
+++ b/frontend/textbooks/physics_10_ch3.html
@@ -1365,34 +1365,716 @@ function build_p17(){
function build_p18(){
const box = document.getElementById('p18-body');
let html = '';
+
+ /* THEORY 1 — Понятие поля */
html += makeCard('theory', "Электростатическое поле", "§18", `
-
Электростатическое поле — этот параграф в разработке (Phase 1+).
-
Здесь появятся: теория, формулы, разобранные примеры и 3–4 интерактива в стиле «алгебры 11» — таблицы, симуляции, ползунки, drag-and-drop и автопроверяемые тренажёры.
-
- Phase 0: создан скелет учебника. Phase 3+: наполнение этого § содержанием по учебнику «Физика 10» (Беларусь, 2019).
-
+
Электростатическое поле — особый вид материи, который существует вокруг электрических зарядов и проявляется в действии на другие заряды.
+
До открытия поля физики верили в «дальнодействие» — мгновенное действие на расстоянии. Однако опыты с движущимися зарядами показали, что взаимодействие распространяется с конечной скоростью (скоростью света). Носителем этого взаимодействия является электромагнитное поле.
+
Электростатическое поле создаётся неподвижными зарядами и не меняется со временем.
+
Подобно тому, как магнит создаёт магнитное поле, а Земля создаёт гравитационное поле, электрический заряд создаёт электростатическое поле.
`);
+
+ /* THEORY 2 — Свойства поля */
+ html += makeCard('rule', "Свойства электростатического поля", "§18", `
+
Свойства электростатического поля:
+
+
Создаётся электрическим зарядом (источником).
+
Действует только на электрические заряды (помещённые в поле).
+
Невидимо, обнаруживается по силам, действующим на заряды.
+
Передаётся с конечной скоростью (в пустоте — со скоростью света $c = 3 \\cdot 10^8$ м/с).
+
Подчиняется принципу суперпозиции: поля складываются векторно.
+
+
Поля могут создаваться:
+
+
Одним точечным зарядом.
+
Системой точечных зарядов.
+
Заряженными телами (заряд распределён по поверхности или объёму).
+
+
В этом параграфе мы изучим электростатическое поле — поле неподвижных зарядов. Его характеристики не зависят от времени.
+ `);
+
+ /* THEORY 3 — Пробный заряд и источник */
+ html += makeCard('example', "Пробный заряд и источник", "§18", `
+
Пробный заряд $q_{пр}$ — это очень маленький положительный заряд, который вносится в исследуемую точку поля для измерения характеристик поля.
+
Условия для пробного заряда:
+
+
Должен быть малым, чтобы своим полем не искажать исходное поле.
+
По общему соглашению — положительным, чтобы направление силы совпадало с направлением поля.
+
+
Источник поля — заряд (или система зарядов), создающий поле.
+
Аналогия: чтобы измерить силу ветра, мы выставляем флюгер (пробный объект). Так же, чтобы измерить поле, мы помещаем в точку пробный заряд и смотрим, какая сила на него действует.
+
Поле существует независимо от того, есть в точке пробный заряд или нет. Поле — это объективная физическая реальность.
+ `);
+
+ /* INTERACTIVE 1 — Визуализатор электростатического поля */
+ html += `
+
ИНТЕРАКТИВ 1
Визуализатор электростатического поля
+
Меняй знак и величину заряда — увидишь линии поля. Добавь пробный заряд — увидишь силу, действующую на него.
+
+
+
+
+
+
+
+
+
`;
+
+ /* INTERACTIVE 2 — Понятие поля */
+ html += `
+
ИНТЕРАКТИВ 2
Понятие поля
+
5 вопросов о природе и свойствах электростатического поля.
+
Вопрос 1 / 5Очки: 0 / 5
+
+
+
+
+
`;
+
+ /* INTERACTIVE 3 — Существует ли поле? */
+ html += `
+
ИНТЕРАКТИВ 3
Существует ли поле?
+
6 ситуаций — есть ли в указанной точке электростатическое поле?
+
Задача 1 / 6Очки: 0 / 6
+
+
+
+
+
`;
+
+ /* INTERACTIVE 4 — Кратко: что такое поле */
+ html += `
+
ИНТЕРАКТИВ 4
Кратко: что такое поле
+
4 быстрых вопроса. Выбери номер правильного варианта.
+
Вопрос 1 / 4Очки: 0 / 4
+
+
+
+
+
`;
+
html += secNav('p17', 'p19');
html += readButton('p18');
+
box.innerHTML = html;
renderMath(box);
+
+ /* IV1 — Визуализатор электростатического поля */
+ (function(){
+ const svg = document.getElementById('p18-iv1-svg');
+ const qS = document.getElementById('p18-iv1-q');
+ const nS = document.getElementById('p18-iv1-n');
+ const qL = document.getElementById('p18-iv1-qL');
+ const nL = document.getElementById('p18-iv1-nL');
+ const out = document.getElementById('p18-iv1-out');
+ const seen = new Set();
+ let _done = false;
+ const k = PHYS.CONST.k;
+
+ function fmtQ(q){ return (q>=0?'+':'') + q; }
+ function render(){
+ const q = +qS.value, n = +nS.value;
+ qL.textContent = fmtQ(q); nL.textContent = n;
+ const W = 380, H = 260, cx = W/2, cy = H/2;
+ let g = '';
+ // Заголовок
+ g += 'Электростатическое поле точечного заряда';
+
+ // Линии поля (если q != 0)
+ if(q !== 0){
+ g += PHYS.fieldLinesPointCharge(cx, cy, q > 0 ? 1 : -1, 95, 16);
+ }
+ // Сам заряд
+ if(q === 0){
+ g += '';
+ g += '0';
+ } else {
+ g += PHYS.chargeMark(cx, cy, q > 0 ? 1 : -1, 20, '');
+ }
+ // Подпись
+ g += 'q = '+fmtQ(q)+' нКл';
+
+ // Пробные заряды (по окружности r=130)
+ if(n > 0 && q !== 0){
+ const Rp = 115;
+ const qpr = 1e-9; // 1 нКл пробный
+ for(let i = 0; i < n; i++){
+ const a = 2*Math.PI*i/n + 0.15;
+ const px = cx + Rp*Math.cos(a);
+ const py = cy + Rp*Math.sin(a);
+ // Пробный заряд: маленький красный крестик
+ g += '';
+ g += '';
+ g += '';
+ // Стрелка силы: от заряда (если q>0) или к заряду (если q<0)
+ const dirx = Math.cos(a), diry = Math.sin(a);
+ const L = 22;
+ const sign = q > 0 ? 1 : -1;
+ // F = qE. Если q>0 (источник), пробный отталкивается — стрелка от центра
+ const sx = px + sign * 9 * dirx;
+ const sy = py + sign * 9 * diry;
+ const ex = px + sign * (9 + L) * dirx;
+ const ey = py + sign * (9 + L) * diry;
+ g += PHYS.drawArrow(sx, sy, ex, ey, '#ea580c', 2, 8);
+ }
+ }
+
+ svg.innerHTML = g;
+
+ // Описание
+ let txt = '';
+ if(q === 0){
+ txt = 'Заряд = 0: поля нет.';
+ } else if(q > 0){
+ txt = 'Положительный заряд: линии поля направлены от заряда. На пробный $+$ заряд действует сила отталкивания.';
+ } else {
+ txt = 'Отрицательный заряд: линии поля направлены к заряду. На пробный $+$ заряд действует сила притяжения.';
+ }
+ out.innerHTML = txt;
+ renderMath(out);
+
+ seen.add(q+':'+n);
+ if(!_done && seen.size >= 4){ _done = true; addXp(10, 'p18-iv1'); bumpProgress('p18', 15); }
+ }
+ qS.addEventListener('input', render);
+ nS.addEventListener('input', render);
+ render();
+ })();
+
+ /* IV2 — Понятие поля */
+ (function(){
+ const Q = [
+ { q:'Электростатическое поле существует, только когда в точке есть пробный заряд?', opts:['Да','Нет'], ans:1, why:'Поле существует независимо от пробного заряда — это объективная физическая реальность.' },
+ { q:'Источник электростатического поля — это:', opts:['Электрический заряд','Магнит'], ans:0, why:'Электростатическое поле создаётся электрическими зарядами. Магнит создаёт магнитное поле.' },
+ { q:'Пробный заряд по соглашению — какого знака?', opts:['Положительный','Отрицательный'], ans:0, why:'Пробный заряд берут положительным, чтобы направление силы совпадало с направлением поля.' },
+ { q:'Электростатическое поле создаётся:', opts:['Неподвижными зарядами','Движущимися зарядами'], ans:0, why:'Именно неподвижные заряды создают электростатическое поле. Движущиеся создают магнитное.' },
+ { q:'Через что передаётся действие заряда на другой заряд?', opts:['Через пустоту','Через поле'], ans:1, why:'Носителем взаимодействия является поле. «Дальнодействие через пустоту» — устаревшее представление.' },
+ ];
+ let i = 0, score = 0;
+ const qEl = document.getElementById('p18-iv2-q');
+ const oEl = document.getElementById('p18-iv2-opts');
+ const fb = document.getElementById('p18-iv2-fb');
+ const iEl = document.getElementById('p18-iv2-i');
+ const sEl = document.getElementById('p18-iv2-s');
+
+ function show(){
+ if(i >= Q.length){
+ qEl.innerHTML = 'Готово! Результат: ' + score + ' / ' + Q.length;
+ oEl.innerHTML = '';
+ if(score === Q.length){ addXp(15, 'p18-iv2'); bumpProgress('p18', 25); }
+ else if(score >= 3){ addXp(8, 'p18-iv2'); bumpProgress('p18', 15); }
+ return;
+ }
+ iEl.textContent = (i+1);
+ sEl.textContent = score;
+ const item = Q[i];
+ qEl.innerHTML = item.q;
+ oEl.innerHTML = item.opts.map((t, k) => '').join('');
+ fb.style.display = 'none';
+ renderMath(qEl); renderMath(oEl);
+ oEl.querySelectorAll('button').forEach(b => {
+ b.addEventListener('click', () => {
+ const v = +b.dataset.v;
+ if(v === item.ans){ score++; feedback(fb, true, '✓ Верно! ' + item.why + ' Дальше ▶'); }
+ else feedback(fb, false, '✗ Неверно. ' + item.why + ' Дальше ▶');
+ sEl.textContent = score;
+ oEl.querySelectorAll('button').forEach(x => x.disabled = true);
+ i++;
+ setTimeout(show, 1700);
+ });
+ });
+ }
+ document.getElementById('p18-iv2-restart').addEventListener('click', () => { i = 0; score = 0; show(); });
+ show();
+ })();
+
+ /* IV3 — Существует ли поле? */
+ (function(){
+ const OPTS = ['Существует', 'Не существует (E = 0)'];
+ const Q = [
+ { q:'В точке возле положительно заряженного шара.', ans:0, why:'Заряженное тело создаёт поле вокруг себя.' },
+ { q:'Вокруг нейтрального тела (суммарный заряд = 0).', ans:1, why:'Нет заряда — нет поля. (В реальности есть микрополе, но в школьной модели — нет.)' },
+ { q:'Внутри однородно заряженной сферической оболочки.', ans:1, why:'По теореме Гаусса: внутри полой однородно заряженной сферы поле равно нулю.' },
+ { q:'В точке возле отдельного электрона.', ans:0, why:'Электрон — заряженная частица, вокруг него всегда есть поле.' },
+ { q:'В точке посередине между двумя равными одноимёнными зарядами.', ans:1, why:'Поля от двух зарядов равны по модулю и противоположны по направлению — взаимно компенсируются.' },
+ { q:'В вакууме вдали от любых зарядов.', ans:1, why:'Без источников электростатического поля нет.' },
+ ];
+ let i = 0, score = 0;
+ const qEl = document.getElementById('p18-iv3-q');
+ const oEl = document.getElementById('p18-iv3-opts');
+ const fb = document.getElementById('p18-iv3-fb');
+ const iEl = document.getElementById('p18-iv3-i');
+ const sEl = document.getElementById('p18-iv3-s');
+
+ function show(){
+ if(i >= Q.length){
+ qEl.innerHTML = 'Готово! Результат: ' + score + ' / ' + Q.length;
+ oEl.innerHTML = '';
+ if(score === Q.length){ addXp(15, 'p18-iv3'); bumpProgress('p18', 25); }
+ else if(score >= 4){ addXp(8, 'p18-iv3'); bumpProgress('p18', 15); }
+ return;
+ }
+ iEl.textContent = (i+1);
+ sEl.textContent = score;
+ const item = Q[i];
+ qEl.innerHTML = item.q;
+ oEl.innerHTML = OPTS.map((t, k) => '').join('');
+ fb.style.display = 'none';
+ renderMath(qEl); renderMath(oEl);
+ oEl.querySelectorAll('button').forEach(b => {
+ b.addEventListener('click', () => {
+ const v = +b.dataset.v;
+ if(v === item.ans){ score++; feedback(fb, true, '✓ Верно! ' + item.why + ' Дальше ▶'); }
+ else feedback(fb, false, '✗ Неверно. ' + item.why + ' Дальше ▶');
+ sEl.textContent = score;
+ oEl.querySelectorAll('button').forEach(x => x.disabled = true);
+ i++;
+ setTimeout(show, 1700);
+ });
+ });
+ }
+ document.getElementById('p18-iv3-restart').addEventListener('click', () => { i = 0; score = 0; show(); });
+ show();
+ })();
+
+ /* IV4 — Кратко: что такое поле */
+ (function(){
+ const Q = [
+ { q:'Электростатическое поле создаётся:', opts:['1. Электрическим зарядом', '2. Массой тела', '3. Течением времени'], ans:0, why:'Источник поля — электрический заряд.' },
+ { q:'Электростатическое поле создают:', opts:['1. Неподвижные заряды', '2. Движущиеся заряды', '3. Любые заряды'], ans:0, why:'Именно неподвижные заряды создают электростатическое поле.' },
+ { q:'Пробный заряд — это:', opts:['1. Положительный и большой', '2. Положительный и малый', '3. Любого знака и любой величины'], ans:1, why:'Малый — чтобы не искажать поле; положительный — для соответствия направления силы и поля.' },
+ { q:'Действие электростатического поля передаётся:', opts:['1. Мгновенно', '2. Со скоростью света', '3. Со скоростью звука'], ans:1, why:'В вакууме электромагнитное взаимодействие распространяется со скоростью света $c \\approx 3 \\cdot 10^8$ м/с.' },
+ ];
+ let i = 0, score = 0;
+ const qEl = document.getElementById('p18-iv4-q');
+ const oEl = document.getElementById('p18-iv4-opts');
+ const fb = document.getElementById('p18-iv4-fb');
+ const iEl = document.getElementById('p18-iv4-i');
+ const sEl = document.getElementById('p18-iv4-s');
+
+ function show(){
+ if(i >= Q.length){
+ qEl.innerHTML = 'Готово! Результат: ' + score + ' / ' + Q.length;
+ oEl.innerHTML = '';
+ if(score === Q.length){ addXp(15, 'p18-iv4'); bumpProgress('p18', 25); }
+ else if(score >= 2){ addXp(8, 'p18-iv4'); bumpProgress('p18', 15); }
+ return;
+ }
+ iEl.textContent = (i+1);
+ sEl.textContent = score;
+ const item = Q[i];
+ qEl.innerHTML = item.q;
+ oEl.innerHTML = item.opts.map((t, k) => '').join('');
+ fb.style.display = 'none';
+ renderMath(qEl); renderMath(oEl);
+ oEl.querySelectorAll('button').forEach(b => {
+ b.addEventListener('click', () => {
+ const v = +b.dataset.v;
+ if(v === item.ans){ score++; feedback(fb, true, '✓ Верно! ' + item.why + ' Дальше ▶'); }
+ else feedback(fb, false, '✗ Неверно. ' + item.why + ' Дальше ▶');
+ sEl.textContent = score;
+ oEl.querySelectorAll('button').forEach(x => x.disabled = true);
+ i++;
+ setTimeout(show, 1700);
+ });
+ });
+ }
+ document.getElementById('p18-iv4-restart').addEventListener('click', () => { i = 0; score = 0; show(); });
+ show();
+ })();
+
wireReadBtn('p18');
}
function build_p19(){
const box = document.getElementById('p19-body');
let html = '';
- html += makeCard('theory', "Напряжённость поля. Принцип суперпозиции", "§19", `
-
Напряжённость поля. Принцип суперпозиции — этот параграф в разработке (Phase 1+).
-
Здесь появятся: теория, формулы, разобранные примеры и 3–4 интерактива в стиле «алгебры 11» — таблицы, симуляции, ползунки, drag-and-drop и автопроверяемые тренажёры.
-
- Phase 0: создан скелет учебника. Phase 3+: наполнение этого § содержанием по учебнику «Физика 10» (Беларусь, 2019).
-
+
+ /* THEORY 1 — Определение напряжённости */
+ html += makeCard('theory', "Напряжённость электростатического поля", "§19", `
+
Напряжённость электростатического поля $\\vec{E}$ — векторная физическая величина, равная отношению силы, действующей на пробный заряд, к величине этого заряда:
+
$$\\vec{E} = \\dfrac{\\vec{F}}{q_{пр}}$$
+
где:
+
+
$\\vec{E}$ — напряжённость поля в данной точке (Н/Кл);
+
$\\vec{F}$ — сила, действующая на пробный заряд (Н);
+
$q_{пр}$ — пробный заряд (Кл).
+
+
Единица измерения: $1$ Н/Кл $= 1$ В/м (вольт на метр).
+
Сила на заряд в поле напряжённостью $\\vec{E}$:
+
$$\\vec{F} = q \\vec{E}$$
+
Направление:
+
+
Для $q > 0$: $\\vec{F}$ совпадает с $\\vec{E}$ по направлению.
+
Для $q < 0$: $\\vec{F}$ противоположна $\\vec{E}$.
+
`);
+
+ /* THEORY 2 — Поле точечного заряда */
+ html += makeCard('rule', "Напряжённость поля точечного заряда", "§19", `
+
Модуль напряжённости поля точечного заряда $q$ на расстоянии $r$ от него:
+
$$E = k\\,\\dfrac{|q|}{r^2}$$
+
где $k = 9 \\cdot 10^9$ Н$\\cdot$м$^2$/Кл$^2$ — постоянная Кулона.
+
Направление:
+
+
Поле положительного заряда направлено от заряда (наружу).
+
Поле отрицательного заряда направлено к заряду (внутрь).
+
+
В среде с диэлектрической проницаемостью $\\varepsilon$:
+ `);
+
+ /* THEORY 3 — Принцип суперпозиции */
+ html += makeCard('example', "Принцип суперпозиции полей", "§19", `
+
Принцип суперпозиции: если поле создано несколькими зарядами, то напряжённость суммарного поля равна векторной сумме напряжённостей полей от каждого заряда отдельно:
Это векторная сумма — учитываем направления каждого $\\vec{E_i}$.
+
Пример 1. Два заряда по $+q$ на расстоянии $2d$. Найти $E$ в точке посередине.
+
$E_1$ от первого и $E_2$ от второго равны по модулю, но направлены в разные стороны $\\Rightarrow$ $E = 0$. Это точка равновесия.
+
Пример 2. Два заряда $+q$ и $-q$ на расстоянии $2d$ (диполь). В точке посередине $E_1$ и $E_2$ направлены в одну сторону (от $+q$ к $-q$):
+
$$E = 2 \\cdot k\\dfrac{|q|}{d^2}$$
+
Однородное поле — поле, в котором $\\vec{E}$ одинакова во всех точках (по модулю и направлению). Создаётся, например, между параллельными пластинами заряженного конденсатора. Сила $\\vec{F} = q\\vec{E}$ на заряд везде одинакова.
+ `);
+
+ /* INTERACTIVE 1 — Напряжённость поля точечного заряда */
+ html += `
+
ИНТЕРАКТИВ 1
Напряжённость поля точечного заряда
+
Меняй $q$ и $r$ — стрелки $\\vec{E}$ в 8 точках вокруг заряда покажут направление и величину поля.
+
+
+
+
+
+
+
+
+
`;
+
+ /* INTERACTIVE 2 — Принцип суперпозиции: 2 заряда */
+ html += `
+
ИНТЕРАКТИВ 2
Принцип суперпозиции: 2 заряда
+
Заряды $q_1$ слева, $q_2$ справа на расстоянии $0{,}3$ м. Пробная точка между ними. $\\vec{E}$ от каждого — коллинеарны.
+
+
+
+
+
+
+
+
+
+
`;
+
+ /* INTERACTIVE 3 — Какое направление E? */
+ html += `