From beebdadca061cbd21f9a0d4575af46cd2579a65b Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Wed, 27 May 2026 13:39:11 +0300 Subject: [PATCH] =?UTF-8?q?feat(textbooks):=20Wave=20Depth=20=E2=80=94=204?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=BA=D0=B0=D1=87=D0=B0=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D1=85=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D0=B0=D0=BA=D1=82=D0=B8?= =?UTF-8?q?=D0=B2=D0=B0=20(+474=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. §1 «Извлечение в столбик» — пошаговая анимация - Поле ввода числа + пресеты 1296/2916/7744 - Async-функция clStart() рендерит классическое 'деление в столбик' - JetBrains Mono шрифт, подсветка текущей грани цветом секции - Поясняющий текст для каждого шага рядом - При остатке 0: confetti + 15 XP + ачивка 'col-root' - Для нецелых корней — корректно показывает остаток 2. §4 «Сравнение через квадраты» — визуальное доказательство - 5 пар: 3√2 vs 2√3, 4√3 vs 3√5, √17 vs 4, ... - SVG с двумя анимированно растущими квадратами (transform scale 0→1, spring) - Победитель — бейдж в верхней части - Под квадратами: (3√2)² = 18 > 12 = (2√3)² 3. §5 «Эйлеровы диаграммы» — альтернатива линейной визуализации - 4 слайдера для границ A и B - Два эллипса (pink/blue) с пересечением - Режимы: 'Показать ∪' (золотой контур), '∩' (зелёная штриховка), 'Оба' - Дополняет существующую линейную визуализацию 4. §6 «Решатель систем 3+ неравенств» — расширен с 2 до 5 - Динамический контейнер #sys-list с массивом _sysRows - Кнопка '+ Добавить неравенство' (до 5) - Кнопка '×' удаляет (кроме первой) - SVG-прямая динамически масштабируется под N строк - Совместимость с sysMode/solveLin сохранена --- frontend/textbooks/algebra_8.html | 695 ++++++++++++++++++++++++++---- 1 file changed, 619 insertions(+), 76 deletions(-) diff --git a/frontend/textbooks/algebra_8.html b/frontend/textbooks/algebra_8.html index 141c070..2a2bd6d 100644 --- a/frontend/textbooks/algebra_8.html +++ b/frontend/textbooks/algebra_8.html @@ -660,6 +660,26 @@ input,select,textarea{font-family:inherit} /* Sound indicator */ #sound-muted-hint{display:none} + +/* ═══════════════════════════════════════════════ + WAVE DEPTH — 4 new widgets + ═══════════════════════════════════════════════ */ + +/* Widget 1: Column root extraction */ +.cl-workspace{font-family:'JetBrains Mono',monospace;font-size:1.05rem;background:var(--card);border:1px solid var(--border);border-radius:11px;padding:18px 22px;margin-top:14px;line-height:1.7;min-height:120px;white-space:pre} +.cl-workspace .cl-active{background:var(--sec-acc-soft,#fce7f3);padding:0 4px;border-radius:3px;font-weight:700;color:var(--sec-acc,var(--pri))} +.cl-workspace .cl-result{color:var(--ok);font-weight:800} +.cl-explain{margin-top:10px;padding:10px 14px;background:linear-gradient(135deg,var(--pri-soft),var(--acc-soft));border-radius:9px;font-size:.92rem;line-height:1.5;min-height:60px} +.cl-final-badge{display:inline-block;padding:8px 16px;margin:14px auto;background:linear-gradient(135deg,var(--ok),#34d399);color:#fff;border-radius:99px;font-weight:800;font-size:1.1rem;box-shadow:0 6px 18px rgba(16,185,129,.3);animation:simpPop .5s ease} + +/* Widget 2: Square comparison SVG */ +.sq-comp-conclusion{margin-top:10px;text-align:center;font-size:1rem;min-height:36px;padding:8px 12px;border-radius:8px;background:var(--card);border:1px solid var(--border)} + +/* Widget 3: Euler-Venn diagrams */ +.ev-result{margin-top:10px;text-align:center;font-size:.95rem;padding:8px 12px;background:var(--card);border-radius:9px;border:1px solid var(--border);min-height:36px} + +/* Widget 4: Multi-row system solver */ +.sys-row-card{padding:10px;background:var(--card);border-radius:9px;border:1.5px solid var(--border);margin-bottom:8px} @@ -1676,6 +1696,19 @@ function buildP1(){ `)} + ${widget('Извлечение в столбик — пошаговая анимация', 'STEPS', 'Введите положительное число (точный квадрат до 10000). Нажмите «Извлечь по шагам» — увидите классический алгоритм.', ` +
+ Число под корнем: + + + + + +
+
+
+ `)} + ${widget('Игра «Таблица квадратов 10–99»', 'GAME', 'Показано число — выберите его квадратный корень. Точность важнее скорости, но скорость даёт бонус. Лучший результат сохраняется!', `
Раунд: 1/10
@@ -3235,6 +3268,20 @@ function buildP4(){ `)} + ${widget('Сравнение через возведение в квадрат', 'VISUAL', 'Чтобы сравнить два выражения с корнями — возведи их в квадрат. У большего выражения квадрат больше.', ` +
+ 3√2 + vs + 2√3 +
+ +
+ + +
+
+ `)} + ${widget('Тренажёр «Упрости»', 'GAME', 'Введите упрощённое выражение в виде a√b. Например, для √72 ответ: 6√2.', `
Упростите:
@@ -3610,6 +3657,28 @@ function buildP5(){
`)} + ${widget('Эйлеровы диаграммы для ∪ и ∩', 'VISUAL', 'Альтернативная визуализация: каждый промежуток — капсула (по точкам). Пересечение — общая часть. Объединение — оба вместе.', ` +
+
+
A = [2; 6]
+ + +
+
+
B = [4; 9]
+ + +
+
+ +
+ + + +
+
+ `)} + ${makeCard('example','Примеры',null,`