diff --git a/frontend/textbooks/geometry_9_ch3.html b/frontend/textbooks/geometry_9_ch3.html index d887f18..54b2eb5 100644 --- a/frontend/textbooks/geometry_9_ch3.html +++ b/frontend/textbooks/geometry_9_ch3.html @@ -628,10 +628,13 @@ function buildP10(){ svg.innerHTML=s; const sinA=Math.sin(deg2rad(A))||1e-9; - const ratio = 2*R; // в наших экранных единицах - out.innerHTML = '$A = '+A+'°$, $B = '+B+'°$, $C = '+C+'°$
' - + '$\\dfrac{a}{\\sin A} = \\dfrac{b}{\\sin B} = \\dfrac{c}{\\sin C} = 2R = '+(2*R).toFixed(0)+'$ (в пикселях SVG)
' - + '$a \\approx '+a.toFixed(1)+'$, $b \\approx '+b.toFixed(1)+'$, $c \\approx '+c.toFixed(1)+'$  ·  $a/\\sin A \\approx '+(a/sinA).toFixed(1)+'$'; + // R = 130 px ↔ R = 5 ед., коэффициент K = 26 px / ед. + const K = 26; + const Ru = R / K; // = 5 + const au = a / K, bu = b / K, cu = c / K; + out.innerHTML = '$A = '+A+'°$, $B = '+B+'°$, $C = '+C+'°$  ·  $R = '+Ru.toFixed(2)+'$
' + + '$\\dfrac{a}{\\sin A} = \\dfrac{b}{\\sin B} = \\dfrac{c}{\\sin C} = 2R = '+(2*Ru).toFixed(2)+'$
' + + '$a \\approx '+au.toFixed(2)+'$, $b \\approx '+bu.toFixed(2)+'$, $c \\approx '+cu.toFixed(2)+'$  ·  $a/\\sin A \\approx '+(au/sinA).toFixed(2)+'$'; renderMath(out); seen.add(A+'|'+B); if(seen.size>=4 && !seen.has('done')){ addXp(10,'p10-iv1'); bumpProgress('p10',15); seen.add('done'); } @@ -871,14 +874,17 @@ function buildP11(){ const svg=document.getElementById('p11-iv1-svg'); const out=document.getElementById('p11-iv1-out'); const seen=new Set(); - const b=100, c=150; + // Стороны зафиксированы: b = 4 ед., c = 6 ед. Масштаб K = 25 px/ед. + const bU = 4, cU = 6, K = 25; + const bPx = bU * K, cPx = cU * K; function draw(){ const A=+sA.value; lA.textContent=A; - // A_v в позиции (90, 240), B_v = A_v + (c, 0) = (240, 240). C_v под углом A от A_v на расстояние b. + // A_v — вершина с углом A (низ-лево), B_v — на расстоянии c (низ-право), C_v — под углом A от A_v на расстояние b. const Av={x:90, y:240}; - const Bv={x:Av.x+c, y:Av.y}; - const Cv={x:Av.x+b*Math.cos(deg2rad(A)), y:Av.y-b*Math.sin(deg2rad(A))}; - const a=Math.hypot(Bv.x-Cv.x, Bv.y-Cv.y); + const Bv={x:Av.x+cPx, y:Av.y}; + const Cv={x:Av.x+bPx*Math.cos(deg2rad(A)), y:Av.y-bPx*Math.sin(deg2rad(A))}; + const aPx=Math.hypot(Bv.x-Cv.x, Bv.y-Cv.y); + const aU=aPx/K; let s=''; s += ''; // треугольник @@ -890,13 +896,13 @@ function buildP11(){ if(Math.abs(A-90)<0.5){ s += ''; } - // подписи сторон + // подписи сторон в единицах const midAB={x:(Av.x+Bv.x)/2, y:(Av.y+Bv.y)/2}; const midAC={x:(Av.x+Cv.x)/2, y:(Av.y+Cv.y)/2}; const midBC={x:(Bv.x+Cv.x)/2, y:(Bv.y+Cv.y)/2}; - s += 'c = '+c+''; - s += 'b = '+b+''; - s += 'a = '+a.toFixed(1)+''; + s += 'c = '+cU+''; + s += 'b = '+bU+''; + s += 'a ≈ '+aU.toFixed(2)+''; // подпись угла A s += 'A = '+A+'°'; // вершины @@ -908,9 +914,9 @@ function buildP11(){ svg.innerHTML=s; const cosA=Math.cos(deg2rad(A)); - const a2 = b*b + c*c - 2*b*c*cosA; - let info = '$a^2 = b^2 + c^2 - 2bc \\cos A = '+(b*b)+' + '+(c*c)+' - '+(2*b*c)+' \\cdot \\cos '+A+'° \\approx '+a2.toFixed(1)+'$
' - + '$a \\approx '+Math.sqrt(a2).toFixed(2)+'$'; + const a2u = bU*bU + cU*cU - 2*bU*cU*cosA; + let info = '$a^2 = b^2 + c^2 - 2bc \\cos A = '+(bU*bU)+' + '+(cU*cU)+' - '+(2*bU*cU)+' \\cdot \\cos '+A+'° \\approx '+a2u.toFixed(2)+'$
' + + '$a \\approx '+Math.sqrt(Math.max(0,a2u)).toFixed(2)+'$'; if(Math.abs(A-90)<0.5) info += '
✓ Прямой угол — это теорема Пифагора!'; out.innerHTML=info; renderMath(out);