From 4747229b09ea64003f14fae924e16c67a19e0cde Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Fri, 29 May 2026 11:33:23 +0300 Subject: [PATCH] =?UTF-8?q?fix(alg10=20ch1=20=C2=A711):=20SVG=20=D0=B4?= =?UTF-8?q?=D0=B2=D0=BE=D0=B9=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=83=D0=B3=D0=BB?= =?UTF-8?q?=D0=B0=20=E2=80=94=20=D0=BF=D0=BE=D0=B4=D0=BF=D0=B8=D1=81=D0=B8?= =?UTF-8?q?=20=D0=B1=D0=B5=D0=B7=20LaTeX-=D1=81=D0=BA=D0=BE=D0=B1=D0=BE?= =?UTF-8?q?=D0=BA=20+=2030=C2=B0/60=C2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проблемы старого рисунка: - Метки 'P_α' и 'P_{2α}' рисовались как SVG , а KaTeX не обрабатывает SVG — фигурные скобки '{2α}' показывались как литерал, выглядело как «P_{2α}» - Угол 2α = 70° был слишком близко к оси y, метка P_{2α} наезжала на цифру '1' оси y - Подзаголовок 'α = 35°, 2α = 70°' тоже перекрывался Что переделано: - Углы изменены на textbook-стандарт: α = 30°, 2α = 60°. Это даёт хорошо видимое разделение и удобные значения для вспоминания формул - Размер канваса увеличен до 380x360, радиус R=130 — больше пространства для подписей - Точки и подписи рисуются вручную (без c.point auto-label), потому что нужно тонкое позиционирование чтобы не пересечь '1' на оси y - Подписи изменены на 'P(α)' и 'P(2α)' — скобки решают проблему визуально (math-нотация) и не используют braces которые SVG рисует литералом - Подписи углов 'α' и '2α' расположены на биссектрисах секторов (через формулу 48*cos(ang/2), 48*sin(ang/2)) — посередине внутри своего сектора - Усилены: размер шрифта 13, font-family Unbounded для контраста с Inter в остальном тексте - Жирность fill-цвета увеличена (rgba .22 → .30 для α сектора) --- frontend/textbooks/algebra_10_ch1.html | 41 ++++++++++++++++---------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/frontend/textbooks/algebra_10_ch1.html b/frontend/textbooks/algebra_10_ch1.html index 3bd3443..c43a018 100644 --- a/frontend/textbooks/algebra_10_ch1.html +++ b/frontend/textbooks/algebra_10_ch1.html @@ -2632,25 +2632,36 @@ function buildP11(){ /* === SVG: α и 2α на единичной окружности (только геометрия) === */ let svgDouble = ''; if(A){ - const c = A.tri.canvas({id:'p11-d', W:360, H:340, R:120}); - const ang = 35 * Math.PI / 180; /* α = 35° */ - const ang2 = 2 * ang; /* 2α = 70° */ + const c = A.tri.canvas({id:'p11-d', W:380, H:360, R:130}); + const ang = 30 * Math.PI / 180; /* α = 30° */ + const ang2 = 60 * Math.PI / 180; /* 2α = 60° */ + const p1 = c.pointPx(ang); + const p2 = c.pointPx(ang2); let s = c.open - + '' + /* === Заголовочная плашка === */ + + '' + 'УГОЛ α И ДВОЙНОЙ УГОЛ 2α' - + 'Пример: α = 35°, 2α = 70°' + + 'Пример: α = 30°, 2α = 60°' + /* === Оси и окружность === */ + c.axes() + c.circle({width:2.5}) - /* Сектор α */ - + '' - + 'α' - /* Сектор 2α (поверх) */ - + '' - + '' - + c.radius(ang, {color:'#0d9488', width:2.5}) - + c.radius(ang2, {color:'#7c3aed', width:2.5}) - + c.point(ang, {color:'#0d9488', label:'P_α', labelOffset:20, fontSize:12, labelColor:'#0f766e'}) - + c.point(ang2, {color:'#7c3aed', label:'P_{2α}', labelOffset:20, fontSize:12, labelColor:'#6d28d9'}) + /* === Сектор 2α (фиолетовый пунктирный, под α) === */ + + '' + /* === Сектор α (бирюзовый, поверх) === */ + + '' + /* === Подписи углов внутри секторов === */ + + 'α' + + '' + /* === Радиусы === */ + + c.radius(ang, {color:'#0d9488', width:2.8}) + + c.radius(ang2, {color:'#7c3aed', width:2.8}) + /* === Точки P_α и P_{2α} (рисуем вручную, чтобы подписи не наезжали на оси) === */ + + '' + + '' + /* P_α — подпись справа-сверху от точки (она в правом нижнем углу I четверти) */ + + 'P(α)' + /* P_{2α} — подпись справа от точки (она ближе к верху), уводим вправо чтобы не пересечь "1" на оси y */ + + 'P(2α)' + c.close; svgDouble = s; }