diff --git a/frontend/textbooks/geometry_8_ch4.html b/frontend/textbooks/geometry_8_ch4.html index 418b6fd..32880e2 100644 --- a/frontend/textbooks/geometry_8_ch4.html +++ b/frontend/textbooks/geometry_8_ch4.html @@ -5150,21 +5150,21 @@ function buildP13(){ - - - - - - - - - - A - C - B - D - P - ½(⌢AC+⌢BD) + + + + + + + + + + A + B + C + D + P + ½(⌢AC+⌢BD) `); @@ -5326,8 +5326,8 @@ function buildP13(){ /* === INIT 2: пошаговое доказательство === */ (function(){ const R=55, cx=115, cy=85, W=250, H=175; - const aA=210*Math.PI/180, aC=290*Math.PI/180; - const aB=350*Math.PI/180, aD=70*Math.PI/180; + const aA=220*Math.PI/180, aC=10*Math.PI/180; + const aB=130*Math.PI/180, aD=300*Math.PI/180; const Ax=cx+R*Math.cos(aA), Ay=cy+R*Math.sin(aA); const Ccx=cx+R*Math.cos(aC), Ccy=cy+R*Math.sin(aC); const Bx=cx+R*Math.cos(aB), By=cy+R*Math.sin(aB); @@ -5533,19 +5533,19 @@ function buildP14(){ - - - - - - - - + + + + + + + + P - C - A - D - B + C + A + D + B ∠P = ½(⌢AB − ⌢CD) `); @@ -5704,10 +5704,15 @@ function buildP14(){ (function(){ const R=52, cx=105, cy=80, W=260, H=165; const Px=242, Py=80; - const Ax=cx+R*Math.cos(Math.PI+60*Math.PI/180), Ay=cy+R*Math.sin(Math.PI+60*Math.PI/180); - const Bx=cx+R*Math.cos(Math.PI-60*Math.PI/180), By=cy+R*Math.sin(Math.PI-60*Math.PI/180); - const Ccx=cx+R*Math.cos(Math.PI+25*Math.PI/180), Ccy=cy+R*Math.sin(Math.PI+25*Math.PI/180); - const Dx=cx+R*Math.cos(Math.PI-25*Math.PI/180), Dy=cy+R*Math.sin(Math.PI-25*Math.PI/180); + // Secants from P: computed as actual intersections with the circle + const _base=Math.atan2(cy-Py,cx-Px); + function _sec(offDeg){const a=_base+offDeg*Math.PI/180,dx=Math.cos(a),dy=Math.sin(a),b=2*((Px-cx)*dx+(Py-cy)*dy),c=(Px-cx)**2+(Py-cy)**2-R*R,d=b*b-4*c,t1=(-b-Math.sqrt(d))/2,t2=(-b+Math.sqrt(d))/2;return[{x:Px+t1*dx,y:Py+t1*dy},{x:Px+t2*dx,y:Py+t2*dy}];} + const _s1=_sec(15), _s2=_sec(-15); + // s1: near=C, far=A; s2: near=D, far=B + const Ccx=_s1[0].x, Ccy=_s1[0].y; + const Ax=_s1[1].x, Ay=_s1[1].y; + const Dx=_s2[0].x, Dy=_s2[0].y; + const Bx=_s2[1].x, By=_s2[1].y; const steps=[ {text:'Дано: Из точки $P$ вне окружности проведены две секущие. Одна пересекает в $C, A$ ($C$ ближе к $P$), другая — в $D, B$ ($D$ ближе к $P$). Доказать: $\\angle P = \\dfrac{1}{2}(\\smile AB - \\smile CD)$.'}, {text:'Шаг 1. Соединим точки $A$ и $D$. Рассмотрим треугольник $\\triangle PAD$.'}, @@ -5904,19 +5909,19 @@ function buildP15(){ - - - - - - - - A - B - C - D - P - PA·PB = PC·PD + + + + + + + + A + B + C + D + P + PA·PB = PC·PD `); @@ -6306,16 +6311,17 @@ function buildP16(){ - - - - - - + + + + + + + P - T - A - B + T + A + B O PT PA · PB