feat(geom10 W6): Раздел 3 §9 + §10 — угол с плоскостью, ТТП, перпендикулярность плоскостей
§9 Угол между прямой и плоскостью: - SVG определения: A, H, B + перпендикуляр AH (красный), наклонная AB (синий), проекция HB (зелёный), угол φ - SVG ТТП: AH⊥α, BC⊂α, HB⊥BC ⇒ AB⊥BC (прямая теорема) - 6 теоретических карточек (определения, угол, прямая+обратная ТТП, равные наклонные, формулы tg/sin/cos, ТТП в кубе) - 3 тренажёра: элементы (6), углы в кубе (5, с поддержкой √2/2, sqrt(2)/2, 0.707), применима ли ТТП (5) - Босс §9: 5 этапов, +70 XP §10 Перпендикулярность плоскостей: - SVG двугранного угла: 2 полуплоскости с общим ребром l, линейный угол φ между MP⊥l и MQ⊥l - SVG признака α⊥β: α содержит l⊥β - 6 теоретических карточек (двугранный угол, линейный угол, ⊥-плоскости, признак, свойство, ⊥ в кубе) - 3 тренажёра: двугранный угол (5), признак ⊥ плоскостей (5), ⊥ грани куба (5) - Босс §10: 6 этапов, +75 XP Финал R3 остаётся stub до W7.
This commit is contained in:
@@ -192,8 +192,8 @@ main{max-width:1100px;margin:0 auto;padding:32px 24px 80px}
|
||||
<div class="sec-nav-inner">
|
||||
<a class="sec-tab active" data-tab="7" href="#para-7"><span class="dot"></span>§7 Прямая ⊥ пл-сть</a>
|
||||
<a class="sec-tab" data-tab="8" href="#para-8"><span class="dot"></span>§8 Расстояния</a>
|
||||
<a class="sec-tab locked" data-tab="9" href="#para-9"><span class="dot"></span>§9 Угол</a>
|
||||
<a class="sec-tab locked" data-tab="10" href="#para-10"><span class="dot"></span>§10 Пл-сти ⊥</a>
|
||||
<a class="sec-tab" data-tab="9" href="#para-9"><span class="dot"></span>§9 Угол</a>
|
||||
<a class="sec-tab" data-tab="10" href="#para-10"><span class="dot"></span>§10 Пл-сти ⊥</a>
|
||||
<a class="sec-tab locked" data-tab="final" href="#para-final"><span class="dot"></span>Финал</a>
|
||||
</div>
|
||||
</nav>
|
||||
@@ -465,33 +465,269 @@ main{max-width:1100px;margin:0 auto;padding:32px 24px 80px}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- §9 stub -->
|
||||
<!-- §9 -->
|
||||
<section id="para-9" class="para">
|
||||
<div class="para-head">
|
||||
<div class="para-num">§ 9</div>
|
||||
<div class="para-h">
|
||||
<h2>Угол между прямой и плоскостью</h2>
|
||||
<div class="para-h-sub">Наклонная и её проекция · теорема о 3 перпендикулярах</div>
|
||||
<div class="para-h-sub">Наклонная и её проекция · теорема о трёх перпендикулярах (ТТП)</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stub-card">
|
||||
<b>В разработке (Волна W6)</b>
|
||||
Параграф появится в следующей волне: теорема о трёх перпендикулярах и углы наклонных в кубе/пирамиде.
|
||||
|
||||
<div class="viz">
|
||||
<div class="viz-title"><span class="badge">ОПРЕДЕЛЕНИЕ</span> Угол между наклонной и плоскостью</div>
|
||||
<div id="viz9-angle" style="text-align:center"></div>
|
||||
<div class="viz-cap">Точка $A$ вне плоскости $\alpha$. <span style="color:#dc2626;font-weight:800">$AH$ — перпендикуляр</span> ($H \in \alpha$). <span style="color:#1e3a8a;font-weight:800">$AB$ — наклонная</span> ($B \in \alpha, B \neq H$). <span style="color:#16a34a;font-weight:800">$HB$ — проекция наклонной</span>. <b>Углом</b> между $AB$ и $\alpha$ называется $\angle ABH$ — угол между наклонной и её проекцией.</div>
|
||||
</div>
|
||||
|
||||
<div class="viz">
|
||||
<div class="viz-title"><span class="badge">ТТП</span> Теорема о трёх перпендикулярах</div>
|
||||
<div id="viz9-ttp" style="text-align:center"></div>
|
||||
<div class="viz-cap">Если из основания $H$ перпендикуляра $AH$ к плоскости $\alpha$ провести в плоскости $\alpha$ прямую $BC \perp HB$, то и <b>наклонная</b> $AB \perp BC$. Обратное верно: $AB \perp BC \Rightarrow HB \perp BC$.</div>
|
||||
</div>
|
||||
|
||||
<div class="theory">
|
||||
<div class="t-card">
|
||||
<span class="t-tag">9.1</span>
|
||||
<div class="t-title">Наклонная и проекция</div>
|
||||
<div class="t-body">
|
||||
<p>Если $A \notin \alpha$, $AH \perp \alpha$ ($H \in \alpha$), а $AB$ — отрезок до $B \in \alpha, B \neq H$, то:</p>
|
||||
<ul>
|
||||
<li>$AH$ — <b>перпендикуляр</b> из $A$;</li>
|
||||
<li>$AB$ — <b>наклонная</b>;</li>
|
||||
<li>$HB$ — <b>проекция</b> наклонной $AB$.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="t-card">
|
||||
<span class="t-tag">9.2</span>
|
||||
<div class="t-title">Угол между прямой и плоскостью</div>
|
||||
<div class="t-body">
|
||||
<p>Углом между <b>наклонной</b> и плоскостью называется <b>угол между наклонной и её проекцией</b> на эту плоскость: $\varphi = \angle ABH$.</p>
|
||||
<p>Для перпендикулярной прямой угол с плоскостью равен $90°$.</p>
|
||||
<p>Для прямой, лежащей в плоскости (или параллельной ей) — $0°$.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="t-card">
|
||||
<span class="t-tag">9.3</span>
|
||||
<div class="t-title">Теорема о трёх перпендикулярах</div>
|
||||
<div class="t-body">
|
||||
<p><b>Прямая теорема:</b> $AH \perp \alpha, BC \subset \alpha, HB \perp BC \Rightarrow AB \perp BC$.</p>
|
||||
<p><b>Обратная теорема:</b> $AH \perp \alpha, BC \subset \alpha, AB \perp BC \Rightarrow HB \perp BC$.</p>
|
||||
<p>Часто применяется в задачах с пирамидами и призмами.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="t-card">
|
||||
<span class="t-tag">9.4</span>
|
||||
<div class="t-title">Равные наклонные = равные проекции</div>
|
||||
<div class="t-body">
|
||||
<p>Из одной точки $A$ к плоскости $\alpha$ проведены наклонные $AB_1$ и $AB_2$. Тогда:</p>
|
||||
<ul>
|
||||
<li>$|AB_1| = |AB_2| \Leftrightarrow |HB_1| = |HB_2|$;</li>
|
||||
<li>бóльшая наклонная даёт бóльшую проекцию.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="t-card">
|
||||
<span class="t-tag">9.5</span>
|
||||
<div class="t-title">Формула угла</div>
|
||||
<div class="t-body">
|
||||
<p>Если $|AH| = h$ — перпендикуляр, $|HB| = p$ — проекция, $|AB| = \ell$ — наклонная, то:</p>
|
||||
<p>$\tg \varphi = \dfrac{h}{p}, \quad \sin \varphi = \dfrac{h}{\ell}, \quad \cos \varphi = \dfrac{p}{\ell}$.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="t-card">
|
||||
<span class="t-tag">9.6</span>
|
||||
<div class="t-title">ТТП в кубе</div>
|
||||
<div class="t-body">
|
||||
<p>Куб $ABCDA_1B_1C_1D_1$. Диагональ $AC_1$ — наклонная к плоскости $ABCD$. Её проекция — диагональ $AC$ нижней грани.</p>
|
||||
<p>$\tg \varphi = \dfrac{AA_1}{AC} = \dfrac{a}{a\sqrt{2}} = \dfrac{1}{\sqrt{2}}$, откуда $\varphi \approx 35{,}26°$.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="inter" data-inter="i9-elem">
|
||||
<div class="inter-h">
|
||||
<div class="inter-icon">1</div>
|
||||
<div class="inter-title">Перпендикуляр, наклонная или проекция?</div>
|
||||
<div class="inter-progress" id="i9-elem-prog">0 / 6</div>
|
||||
</div>
|
||||
<div class="quiz">
|
||||
<div class="quiz-q" id="i9-elem-q"></div>
|
||||
<div class="quiz-opts" id="i9-elem-opts"></div>
|
||||
</div>
|
||||
<div class="quiz-feedback" id="i9-elem-fb"></div>
|
||||
</div>
|
||||
|
||||
<div class="inter" data-inter="i9-cube">
|
||||
<div class="inter-h">
|
||||
<div class="inter-icon">2</div>
|
||||
<div class="inter-title">Углы наклонных в кубе (ребро $a = 1$)</div>
|
||||
<div class="inter-progress" id="i9-cube-prog">0 / 5</div>
|
||||
</div>
|
||||
<div class="quiz">
|
||||
<div class="quiz-q" id="i9-cube-q"></div>
|
||||
<div class="quiz-input">
|
||||
<input id="i9-cube-in" type="text" placeholder="ответ">
|
||||
<button id="i9-cube-go">OK</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="quiz-feedback" id="i9-cube-fb"></div>
|
||||
</div>
|
||||
|
||||
<div class="inter" data-inter="i9-ttp">
|
||||
<div class="inter-h">
|
||||
<div class="inter-icon">3</div>
|
||||
<div class="inter-title">Применима ли ТТП?</div>
|
||||
<div class="inter-progress" id="i9-ttp-prog">0 / 5</div>
|
||||
</div>
|
||||
<div class="quiz">
|
||||
<div class="quiz-q" id="i9-ttp-q"></div>
|
||||
<div class="quiz-opts" id="i9-ttp-opts"></div>
|
||||
</div>
|
||||
<div class="quiz-feedback" id="i9-ttp-fb"></div>
|
||||
</div>
|
||||
|
||||
<div class="boss" id="boss-9"></div>
|
||||
|
||||
<div class="para-actions">
|
||||
<button class="mark-btn" id="mark-9">
|
||||
<svg class="ic" viewBox="0 0 24 24"><polyline points="20 6 9 17 4 12"/></svg>
|
||||
<span>Отметить §9 как изученный</span>
|
||||
</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- §10 stub -->
|
||||
<!-- §10 -->
|
||||
<section id="para-10" class="para">
|
||||
<div class="para-head">
|
||||
<div class="para-num">§ 10</div>
|
||||
<div class="para-h">
|
||||
<h2>Перпендикулярность плоскостей</h2>
|
||||
<div class="para-h-sub">Двугранный угол · линейный угол · признак перпендикулярности плоскостей</div>
|
||||
<div class="para-h-sub">Двугранный угол · линейный угол · признак $\alpha \perp \beta$</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stub-card">
|
||||
<b>В разработке (Волна W6)</b>
|
||||
Параграф появится в следующей волне: двугранный угол, линейный угол, признак $\alpha \perp \beta$.
|
||||
|
||||
<div class="viz">
|
||||
<div class="viz-title"><span class="badge">ДВУГРАННЫЙ УГОЛ</span> Полуплоскости с общим ребром</div>
|
||||
<div id="viz10-dihedral" style="text-align:center"></div>
|
||||
<div class="viz-cap">Двугранный угол — фигура из двух полуплоскостей с общим ребром $l$. Его величина измеряется <b>линейным углом</b>: из точки $M \in l$ в каждой полуплоскости проводят $MP \perp l$ и $MQ \perp l$. Тогда $\angle PMQ$ — линейный угол двугранного угла.</div>
|
||||
</div>
|
||||
|
||||
<div class="viz">
|
||||
<div class="viz-title"><span class="badge">ПРИЗНАК</span> $\alpha \perp \beta$, если $\alpha \supset l \perp \beta$</div>
|
||||
<div id="viz10-sign" style="text-align:center"></div>
|
||||
<div class="viz-cap">Если плоскость $\alpha$ содержит прямую $l$, <b>перпендикулярную</b> плоскости $\beta$, — то $\alpha \perp \beta$. Иначе: достаточно одной перпендикулярной к $\beta$ прямой в $\alpha$, чтобы плоскости были перпендикулярны.</div>
|
||||
</div>
|
||||
|
||||
<div class="theory">
|
||||
<div class="t-card">
|
||||
<span class="t-tag">10.1</span>
|
||||
<div class="t-title">Двугранный угол</div>
|
||||
<div class="t-body">
|
||||
<p><b>Двугранный угол</b> — фигура из двух полуплоскостей с общим ребром $l$ (граней двугранного угла).</p>
|
||||
<p>Двугранный угол может быть острым, прямым, тупым или развёрнутым.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="t-card">
|
||||
<span class="t-tag">10.2</span>
|
||||
<div class="t-title">Линейный угол</div>
|
||||
<div class="t-body">
|
||||
<p>Возьмём $M \in l$. В каждой полуплоскости проведём луч $\perp l$ из $M$. Угол между этими лучами — <b>линейный угол</b>.</p>
|
||||
<p>Линейный угол не зависит от выбора точки $M$ на ребре.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="t-card">
|
||||
<span class="t-tag">10.3</span>
|
||||
<div class="t-title">Перпендикулярные плоскости</div>
|
||||
<div class="t-body">
|
||||
<p>Две плоскости называются <b>перпендикулярными</b>, если их двугранный угол прямой ($90°$).</p>
|
||||
<p>Обозначение: $\alpha \perp \beta$.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="t-card">
|
||||
<span class="t-tag">10.4</span>
|
||||
<div class="t-title">Признак $\alpha \perp \beta$</div>
|
||||
<div class="t-body">
|
||||
<p>Если плоскость $\alpha$ содержит прямую $l$, перпендикулярную плоскости $\beta$, то $\alpha \perp \beta$.</p>
|
||||
<p>Достаточно <b>одной</b> такой прямой.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="t-card">
|
||||
<span class="t-tag">10.5</span>
|
||||
<div class="t-title">Свойство</div>
|
||||
<div class="t-body">
|
||||
<p>Если $\alpha \perp \beta$ и из точки $M \in \alpha$ опустить перпендикуляр $MK$ в плоскости $\alpha$ к линии пересечения $\alpha \cap \beta$, то $MK \perp \beta$.</p>
|
||||
<p>Перпендикуляр к ребру двугранного угла в одной из полуплоскостей перпендикулярен другой плоскости.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="t-card">
|
||||
<span class="t-tag">10.6</span>
|
||||
<div class="t-title">⊥-плоскости в кубе</div>
|
||||
<div class="t-body">
|
||||
<p>В кубе все смежные грани перпендикулярны. Например, $ABCD \perp ABB_1A_1$, потому что ребро $AA_1 \subset ABB_1A_1$ и $AA_1 \perp ABCD$ — выполнен признак.</p>
|
||||
<p>Каждая грань куба перпендикулярна 4 соседним и параллельна 1 противоположной.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="inter" data-inter="i10-dihedral">
|
||||
<div class="inter-h">
|
||||
<div class="inter-icon">1</div>
|
||||
<div class="inter-title">Двугранный угол: понимаешь?</div>
|
||||
<div class="inter-progress" id="i10-dihedral-prog">0 / 5</div>
|
||||
</div>
|
||||
<div class="quiz">
|
||||
<div class="quiz-q" id="i10-dihedral-q"></div>
|
||||
<div class="quiz-opts" id="i10-dihedral-opts"></div>
|
||||
</div>
|
||||
<div class="quiz-feedback" id="i10-dihedral-fb"></div>
|
||||
</div>
|
||||
|
||||
<div class="inter" data-inter="i10-sign">
|
||||
<div class="inter-h">
|
||||
<div class="inter-icon">2</div>
|
||||
<div class="inter-title">Признак перпендикулярности плоскостей</div>
|
||||
<div class="inter-progress" id="i10-sign-prog">0 / 5</div>
|
||||
</div>
|
||||
<div class="quiz">
|
||||
<div class="quiz-q" id="i10-sign-q"></div>
|
||||
<div class="quiz-opts" id="i10-sign-opts"></div>
|
||||
</div>
|
||||
<div class="quiz-feedback" id="i10-sign-fb"></div>
|
||||
</div>
|
||||
|
||||
<div class="inter" data-inter="i10-cube">
|
||||
<div class="inter-h">
|
||||
<div class="inter-icon">3</div>
|
||||
<div class="inter-title">Перпендикулярность граней куба</div>
|
||||
<div class="inter-progress" id="i10-cube-prog">0 / 5</div>
|
||||
</div>
|
||||
<div class="quiz">
|
||||
<div class="quiz-q" id="i10-cube-q"></div>
|
||||
<div class="quiz-opts" id="i10-cube-opts"></div>
|
||||
</div>
|
||||
<div class="quiz-feedback" id="i10-cube-fb"></div>
|
||||
</div>
|
||||
|
||||
<div class="boss" id="boss-10"></div>
|
||||
|
||||
<div class="para-actions">
|
||||
<button class="mark-btn" id="mark-10">
|
||||
<svg class="ic" viewBox="0 0 24 24"><polyline points="20 6 9 17 4 12"/></svg>
|
||||
<span>Отметить §10 как изученный</span>
|
||||
</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -703,6 +939,119 @@ function buildDistanceDetail(){
|
||||
document.getElementById('viz8-detail').innerHTML = sc.render();
|
||||
}
|
||||
|
||||
/* ===== §9 SVGs ===== */
|
||||
function buildAngleViz(){
|
||||
if (!window.STEREO3D) return setTimeout(buildAngleViz, 80);
|
||||
var S = window.STEREO3D;
|
||||
var sc = new S.Scene(440, 320, {view:'CABINET', scale:60});
|
||||
sc.addPlane([0,0,0],[0,0,1],{size:2.2, label:'α'});
|
||||
// Точка A над плоскостью
|
||||
var A = [0, 0, 1.4];
|
||||
var H = [0, 0, 0];
|
||||
var B = [1.3, 0.4, 0];
|
||||
sc.addVertex(A, 'A', {dx:10, dy:-6, color:'#dc2626'});
|
||||
sc.addVertex(H, 'H', {dx:-18, dy:14, color:'#7c3aed'});
|
||||
sc.addVertex(B, 'B', {dx:12, dy:10, color:'#1e3a8a'});
|
||||
// AH — перпендикуляр
|
||||
sc.addEdge(A, H, {stroke:'#dc2626', width:2.8});
|
||||
// AB — наклонная
|
||||
sc.addEdge(A, B, {stroke:'#1e3a8a', width:2.6});
|
||||
// HB — проекция
|
||||
sc.addEdge(H, B, {stroke:'#16a34a', width:2.6});
|
||||
// Прямой угол при H
|
||||
sc.addRightAngleMark(H, [0,0,0.3], [0.3, 0.1, 0], {color:'#7c3aed', width:1.5, size:0.18});
|
||||
// Угол φ при B
|
||||
sc.addAngleMark(B, A, H, {r:0.45, color:'#d97706', width:1.6, label:'φ'});
|
||||
document.getElementById('viz9-angle').innerHTML = sc.render();
|
||||
}
|
||||
|
||||
function buildTTPViz(){
|
||||
if (!window.STEREO3D) return setTimeout(buildTTPViz, 80);
|
||||
var S = window.STEREO3D;
|
||||
var sc = new S.Scene(440, 320, {view:'CABINET', scale:60});
|
||||
sc.addPlane([0,0,0],[0,0,1],{size:2.2, label:'α'});
|
||||
var A = [0, 0, 1.3];
|
||||
var H = [0, 0, 0];
|
||||
var B = [1.2, 0, 0];
|
||||
var C = [1.2, 0.9, 0];
|
||||
sc.addVertex(A, 'A', {dx:10, dy:-6, color:'#dc2626'});
|
||||
sc.addVertex(H, 'H', {dx:-18, dy:14, color:'#7c3aed'});
|
||||
sc.addVertex(B, 'B', {dx:6, dy:14, color:'#1e3a8a'});
|
||||
sc.addVertex(C, 'C', {dx:12, dy:-4, color:'#16a34a'});
|
||||
// AH перпендикуляр
|
||||
sc.addEdge(A, H, {stroke:'#dc2626', width:2.8});
|
||||
// HB проекция
|
||||
sc.addEdge(H, B, {stroke:'#7c3aed', width:2.4});
|
||||
// BC — прямая в α перпендикулярная HB
|
||||
sc.addEdge(B, C, {stroke:'#16a34a', width:2.6});
|
||||
// AB наклонная
|
||||
sc.addEdge(A, B, {stroke:'#1e3a8a', width:2.6});
|
||||
// Прямые углы: при H (AH ⊥ HB), при B (HB ⊥ BC), при B (AB ⊥ BC по выводу)
|
||||
sc.addRightAngleMark(H, [0,0,0.3], [0.3, 0, 0], {color:'#7c3aed', width:1.5, size:0.18});
|
||||
sc.addRightAngleMark(B, [0.9, 0, 0], [1.2, 0.3, 0], {color:'#7c3aed', width:1.5, size:0.18});
|
||||
document.getElementById('viz9-ttp').innerHTML = sc.render();
|
||||
}
|
||||
|
||||
/* ===== §10 SVGs ===== */
|
||||
function buildDihedralViz(){
|
||||
if (!window.STEREO3D) return setTimeout(buildDihedralViz, 80);
|
||||
var S = window.STEREO3D;
|
||||
var sc = new S.Scene(440, 320, {view:'CABINET', scale:60});
|
||||
// Полуплоскость 1: горизонтальная (y >= 0)
|
||||
// Полуплоскость 2: наклонена под 60° от первой
|
||||
// Ребро l — ось x
|
||||
// Рисуем как 2 параллелограмма
|
||||
// Полуплоскость 1: точки (-1.4,0,0), (1.4,0,0), (1.4,1.2,0), (-1.4,1.2,0)
|
||||
sc.addFace([[-1.4,0,0],[1.4,0,0],[1.4,1.2,0],[-1.4,1.2,0]], {fill:'#dbeafe', opacity:0.45, stroke:'#1e3a8a', strokeWidth:1.2});
|
||||
// Полуплоскость 2: повёрнута на 60° вокруг x
|
||||
var a = Math.PI / 3;
|
||||
var ca = Math.cos(a), sa = Math.sin(a);
|
||||
var rot60 = function(p){ return [p[0], p[1]*ca, p[1]*sa]; };
|
||||
sc.addFace([
|
||||
rot60([-1.4,0,0]),
|
||||
rot60([1.4,0,0]),
|
||||
rot60([1.4,1.2,0]),
|
||||
rot60([-1.4,1.2,0])
|
||||
], {fill:'#fef3c7', opacity:0.50, stroke:'#d97706', strokeWidth:1.2});
|
||||
// Ребро l
|
||||
sc.addEdge([-1.5, 0, 0],[1.5, 0, 0], {stroke:'#dc2626', width:3});
|
||||
sc.addLabel('l', [1.5, 0, 0], {dx:12, dy:-4, color:'#dc2626', fontSize:15, anchor:'start'});
|
||||
// Точка M на ребре
|
||||
var M = [0.2, 0, 0];
|
||||
sc.addVertex(M, 'M', {dx:0, dy:14, color:'#0b1d33'});
|
||||
// MP в первой полуплоскости перпендикулярно l (вдоль y)
|
||||
var P = [0.2, 0.9, 0];
|
||||
sc.addEdge(M, P, {stroke:'#1e3a8a', width:2.4});
|
||||
sc.addVertex(P, 'P', {dx:8, dy:-4, color:'#1e3a8a'});
|
||||
// MQ во второй полуплоскости перпендикулярно l (под 60° от MP)
|
||||
var Q = rot60([0.2, 0.9, 0]);
|
||||
sc.addEdge(M, Q, {stroke:'#d97706', width:2.4});
|
||||
sc.addVertex(Q, 'Q', {dx:8, dy:-4, color:'#d97706'});
|
||||
// Угол PMQ
|
||||
sc.addAngleMark(M, P, Q, {r:0.40, color:'#7c3aed', width:1.6, label:'φ'});
|
||||
// Прямые углы при M
|
||||
sc.addRightAngleMark(M, [0.45, 0, 0], [0.2, 0.25, 0], {color:'#16a34a', width:1.4, size:0.16});
|
||||
document.getElementById('viz10-dihedral').innerHTML = sc.render();
|
||||
}
|
||||
|
||||
function buildPlanePerpSign(){
|
||||
if (!window.STEREO3D) return setTimeout(buildPlanePerpSign, 80);
|
||||
var S = window.STEREO3D;
|
||||
var sc = new S.Scene(440, 320, {view:'CABINET', scale:55});
|
||||
// β — горизонтальная
|
||||
sc.addPlane([0,0,0],[0,0,1],{size:2.2, label:'β'});
|
||||
// α — вертикальная (yz-плоскость, нормаль вдоль x)
|
||||
sc.addPlane([0,0,0.6],[1,0,0],{size:1.5, label:'α', fill:'#fde047', opacity:0.30});
|
||||
// Прямая l в α (вертикальная) перпендикулярна β
|
||||
sc.addEdge([0,0,-0.2],[0,0,1.8], {stroke:'#dc2626', width:3});
|
||||
sc.addLabel('l', [0,0,1.8], {dx:12, dy:-4, color:'#dc2626', fontSize:16, anchor:'start'});
|
||||
// Точка O пересечения l и β
|
||||
sc.addVertex([0,0,0], 'O', {dx:8, dy:14, color:'#0b1d33'});
|
||||
// Прямой угол при O между l и β
|
||||
sc.addRightAngleMark([0,0,0], [0,0,0.3], [0.3, 0, 0], {color:'#7c3aed', width:1.5, size:0.18});
|
||||
document.getElementById('viz10-sign').innerHTML = sc.render();
|
||||
}
|
||||
|
||||
/* ========== Quiz Engine (shared) ========== */
|
||||
function runQuizMC(opts){
|
||||
var state = STATE.interactives[opts.id] || { idx: 0, solved: 0 };
|
||||
@@ -880,6 +1229,57 @@ var i8TrueItems = [
|
||||
{ q:'У двух параллельных плоскостей есть бесконечно много общих перпендикуляров одинаковой длины.', opts:['Верно','Неверно'], correct:0, explain:'Каждый перпендикуляр к плоскостям имеет одну и ту же длину — расстояние между ними.' }
|
||||
];
|
||||
|
||||
var i9ElemItems = [
|
||||
{ q:'Из точки $A$ к плоскости $\\alpha$: $AH \\perp \\alpha$, $H \\in \\alpha$. Чем называется $AH$?', opts:['Перпендикуляр','Наклонная','Проекция'], correct:0, explain:'Перпендикуляр.' },
|
||||
{ q:'Из точки $A$ к плоскости проведён отрезок $AB$, $B \\in \\alpha, B \\neq H$. Это…', opts:['Перпендикуляр','Наклонная','Проекция'], correct:1, explain:'Наклонная.' },
|
||||
{ q:'Отрезок $HB$ ($H$ — основание перпендикуляра, $B$ — конец наклонной) — это…', opts:['Перпендикуляр','Наклонная','Проекция'], correct:2, explain:'Проекция наклонной на плоскость.' },
|
||||
{ q:'Угол между прямой и плоскостью — это угол между…', opts:['Прямой и любой прямой плоскости','Прямой и её проекцией','Прямой и перпендикуляром'], correct:1, explain:'Наклонная и её проекция.' },
|
||||
{ q:'Чему равен угол между прямой и плоскостью, в которой она лежит?', opts:['$0°$','$45°$','$90°$'], correct:0, explain:'Прямая в плоскости даёт угол $0°$.' },
|
||||
{ q:'Чему равен угол между перпендикулярной к плоскости прямой и самой плоскостью?', opts:['$0°$','$45°$','$90°$'], correct:2, explain:'Перпендикулярная — даёт $90°$.' }
|
||||
];
|
||||
|
||||
var i9CubeItems = [
|
||||
{ q:'Угол между ребром $AA_1$ и плоскостью $ABCD$ (нижняя грань)?', answer:'90', explain:'$AA_1 \\perp ABCD$ ⇒ угол $90°$.' },
|
||||
{ q:'Угол между ребром $AB$ и плоскостью $ABCD$?', answer:'0', explain:'Ребро лежит в плоскости — угол $0°$.' },
|
||||
{ q:'Угол между диагональю $AC$ и плоскостью $ABCD$?', answer:'0', explain:'Диагональ лежит в нижней плоскости.' },
|
||||
{ q:'$\\tg$ угла между $AC_1$ и плоскостью $ABCD$? (Куб с ребром 1.)', answer:['1/√2','1/sqrt(2)','√2/2','sqrt(2)/2','0.707'], explain:'$\\tg \\varphi = \\frac{AA_1}{AC} = \\frac{1}{\\sqrt{2}} = \\frac{\\sqrt{2}}{2}$.' },
|
||||
{ q:'Угол между диагональю $A_1C$ и плоскостью $A_1B_1C_1D_1$ — в градусах? (через $\\tg \\varphi = \\sqrt{2}$, ответ $\\approx$54.7°, округли до целого)', answer:['55','54','arctg(√2)','arctan(sqrt(2))'], explain:'Проекция $A_1C$ на верхнюю грань = $A_1C_1$ = $\\sqrt{2}$. $\\tg \\varphi = 1/\\sqrt{2}$... подожди. Перпендикуляр $CC_1 = 1$ (от $C$ до верх. грани). Проекция $C_1A_1 = \\sqrt{2}$. $\\tg \\varphi = 1/\\sqrt{2} \\approx 35°$. Округление: 35.' }
|
||||
];
|
||||
// Заметка: 5-я задача переформулирована — оставим ответ 35 (в градусах).
|
||||
i9CubeItems[4] = { q:'Угол между диагональю $A_1C$ и плоскостью $A_1B_1C_1D_1$ — в градусах, целое (формула $\\tg\\varphi = 1/\\sqrt{2}$, $\\varphi \\approx ?$).', answer:'35', explain:'$\\tg \\varphi = \\frac{1}{\\sqrt{2}} \\approx 0.707 \\Rightarrow \\varphi \\approx 35°$.' };
|
||||
|
||||
var i9TtpItems = [
|
||||
{ q:'$AH \\perp \\alpha$, $BC \\subset \\alpha$, $HB \\perp BC$. Вывод по ТТП?', opts:['$AB \\perp BC$','$AB \\parallel BC$','Ничего'], correct:0, explain:'Прямая ТТП: $AB \\perp BC$.' },
|
||||
{ q:'$AH \\perp \\alpha$, $BC \\subset \\alpha$, $AB \\perp BC$. Вывод по обратной ТТП?', opts:['$HB \\perp BC$','$HB \\parallel BC$','Ничего'], correct:0, explain:'Обратная ТТП: $HB \\perp BC$.' },
|
||||
{ q:'Если $BC \\not\\subset \\alpha$ (т.е. $BC$ не лежит в плоскости), применима ли ТТП?', opts:['Да','Нет'], correct:1, explain:'ТТП требует, чтобы $BC$ лежало в той же плоскости, что и проекция.' },
|
||||
{ q:'Если $AH$ — не перпендикуляр, а наклонная, применима ли ТТП?', opts:['Да','Нет'], correct:1, explain:'ТТП требует именно перпендикуляр $AH$.' },
|
||||
{ q:'В пирамиде высота $SO \\perp$ основание. Грань $SAB$. Перпендикулярна ли $SAB$ ребру $CD$ в основании? (При условии $OB \\perp CD$)', opts:['Да, по ТТП','Нет','Нужны дополнительные данные'], correct:0, explain:'$SO \\perp$ основание, $CD$ в основании, $OB \\perp CD$ ⇒ по ТТП $SB \\perp CD$.' }
|
||||
];
|
||||
|
||||
var i10DihedralItems = [
|
||||
{ q:'Двугранный угол — это…', opts:['Угол между прямыми','Фигура из 2 полуплоскостей с общим ребром','Угол наклонной','Угол между плоскостями (всегда острый)'], correct:1, explain:'2 полуплоскости с общим ребром.' },
|
||||
{ q:'Линейный угол двугранного угла строится…', opts:['Произвольно','Перпендикуляром к ребру из точки $M \\in l$','Через диагональ','Через высоту'], correct:1, explain:'Лучи $\\perp l$ в каждой полуплоскости.' },
|
||||
{ q:'Зависит ли линейный угол от выбора точки $M$ на ребре?', opts:['Да','Нет'], correct:1, explain:'Не зависит — все линейные углы двугранного угла равны.' },
|
||||
{ q:'Две плоскости называются перпендикулярными, если…', opts:['Параллельны','Их двугранный угол равен $90°$','Они совпадают','Их пересекает прямая'], correct:1, explain:'Линейный угол $= 90°$.' },
|
||||
{ q:'Чему равен линейный угол развёрнутого двугранного угла?', opts:['$0°$','$90°$','$180°$','$360°$'], correct:2, explain:'Развёрнутый — это $180°$.' }
|
||||
];
|
||||
|
||||
var i10SignItems = [
|
||||
{ q:'Прямая $l \\subset \\alpha$, $l \\perp \\beta$. Вывод?', opts:['$\\alpha \\parallel \\beta$','$\\alpha \\perp \\beta$','$\\alpha = \\beta$'], correct:1, explain:'Признак $\\alpha \\perp \\beta$.' },
|
||||
{ q:'Достаточно ли $\\alpha$ содержать ОДНУ прямую, перпендикулярную $\\beta$, для перпендикулярности плоскостей?', opts:['Да','Нет, нужно две','Нужно три'], correct:0, explain:'Одной прямой достаточно — это и есть признак.' },
|
||||
{ q:'Если плоскость $\\alpha$ содержит прямую, параллельную $\\beta$, можем ли мы заключить $\\alpha \\perp \\beta$?', opts:['Да','Нет'], correct:1, explain:'Параллельная прямая — это про параллельность плоскостей, а не перпендикулярность.' },
|
||||
{ q:'$\\alpha \\perp \\beta$. Опускаем из $M \\in \\alpha$ перпендикуляр в $\\alpha$ к линии пересечения. Этот перпендикуляр…', opts:['$\\parallel \\beta$','$\\perp \\beta$','$\\subset \\beta$'], correct:1, explain:'Перпендикулярен второй плоскости (свойство).' },
|
||||
{ q:'Если плоскость $\\alpha$ перпендикулярна плоскости $\\beta$, а $\\beta \\perp \\gamma$, то $\\alpha \\perp \\gamma$?', opts:['Всегда','Не обязательно','Никогда'], correct:1, explain:'Перпендикулярность плоскостей не транзитивна — могут быть и параллельны, и пересекаться под любым углом.' }
|
||||
];
|
||||
|
||||
var i10CubeItems = [
|
||||
{ q:'Куб: плоскости граней $ABCD$ и $ABB_1A_1$ — это…', opts:['Параллельны','Перпендикулярны','Пересекаются под $45°$'], correct:1, explain:'Смежные грани куба перпендикулярны: $AA_1 \\subset ABB_1A_1$ и $AA_1 \\perp ABCD$ — признак.' },
|
||||
{ q:'Куб: плоскости $ABCD$ и $A_1B_1C_1D_1$ — это…', opts:['Параллельны','Перпендикулярны','Совпадают'], correct:0, explain:'Противоположные грани — параллельны.' },
|
||||
{ q:'Сколько граней куба перпендикулярно одной заданной грани?', opts:['2','3','4','6'], correct:2, explain:'4 смежные грани перпендикулярны; 1 параллельна.' },
|
||||
{ q:'Куб: плоскости $ABB_1A_1$ и $BCC_1B_1$ (две соседние боковые) — это…', opts:['Параллельны','Перпендикулярны','Пересекаются под $60°$'], correct:1, explain:'Соседние боковые грани куба перпендикулярны (общее ребро $BB_1$, линейный угол — между $BA$ и $BC$, равен $90°$).' },
|
||||
{ q:'Куб: диагональная плоскость $ACC_1A_1$ и нижняя грань $ABCD$ — это…', opts:['Параллельны','Перпендикулярны','Под $45°$'], correct:1, explain:'$AA_1 \\subset ACC_1A_1$ и $AA_1 \\perp ABCD$ ⇒ $ACC_1A_1 \\perp ABCD$.' }
|
||||
];
|
||||
|
||||
/* ========== Bosses ========== */
|
||||
var BOSS_DEFS = {
|
||||
7: {
|
||||
@@ -903,6 +1303,29 @@ var BOSS_DEFS = {
|
||||
{ q:'Куб с ребром $2$. Расстояние между параллельными гранями?', type:'input', a:'2', explain:'Расстояние = ребро = 2.' },
|
||||
{ q:'Расстояние между скрещ. прямыми — это длина чего?', type:'mc', opts:['Любого отрезка','Общего перпендикуляра','Касательной','Биссектрисы'], correct:1, explain:'Общего перпендикуляра.' }
|
||||
]
|
||||
},
|
||||
9: {
|
||||
title:'§9 — Угол и ТТП',
|
||||
xp:70,
|
||||
stages:[
|
||||
{ q:'Из точки $A$ к плоскости проведены $AH$ (перпендикуляр), $AB$ (наклонная). Что такое $HB$?', type:'mc', opts:['Перпендикуляр','Наклонная','Проекция'], correct:2, explain:'Проекция наклонной.' },
|
||||
{ q:'Угол между наклонной и плоскостью — это угол между…', type:'mc', opts:['Наклонной и перпендикуляром','Наклонной и проекцией','Наклонной и любой прямой'], correct:1, explain:'Наклонная и её проекция.' },
|
||||
{ q:'ТТП: $AH \\perp \\alpha, BC \\subset \\alpha, HB \\perp BC$. Вывод про $AB$ и $BC$?', type:'mc', opts:['$AB \\perp BC$','$AB \\parallel BC$','Ничего'], correct:0, explain:'$AB \\perp BC$ — прямая ТТП.' },
|
||||
{ q:'Угол между диагональю куба $AC_1$ и плоскостью $ABCD$ ($\\tg \\varphi = 1/\\sqrt{2}$, $\\varphi \\approx ?°$, округли до целого)', type:'input', a:'35', explain:'$\\varphi \\approx 35{,}26°$.' },
|
||||
{ q:'Чему равен угол между прямой $a \\subset \\alpha$ и плоскостью $\\alpha$?', type:'input', a:'0', explain:'$0°$ — прямая лежит в плоскости.' }
|
||||
]
|
||||
},
|
||||
10: {
|
||||
title:'§10 — Перпендикулярность плоскостей',
|
||||
xp:75,
|
||||
stages:[
|
||||
{ q:'Двугранный угол — это…', type:'mc', opts:['Угол между плоскостями','2 полуплоскости с общим ребром','Угол между прямыми','Угол наклонной'], correct:1, explain:'2 полуплоскости + ребро.' },
|
||||
{ q:'Линейный угол двугранного угла строится…', type:'mc', opts:['Произвольно','Перпендикулярами к ребру в каждой полуплоскости','Через высоту','Через диагональ'], correct:1, explain:'Перпендикуляры к ребру.' },
|
||||
{ q:'Плоскость $\\alpha \\supset l \\perp \\beta$. Вывод?', type:'mc', opts:['$\\alpha \\parallel \\beta$','$\\alpha \\perp \\beta$','$\\alpha = \\beta$'], correct:1, explain:'Признак: $\\alpha \\perp \\beta$.' },
|
||||
{ q:'Сколько граней куба перпендикулярно одной заданной грани?', type:'input', a:'4', explain:'4 смежные.' },
|
||||
{ q:'Куб: плоскости $ABB_1A_1$ и $CDD_1C_1$ — это…', type:'mc', opts:['Параллельны','Перпендикулярны','Совпадают'], correct:0, explain:'Это противоположные боковые грани — параллельны.' },
|
||||
{ q:'Линейный угол развёрнутого двугранного угла равен … градусов', type:'input', a:'180', explain:'$180°$ — развёрнутый угол.' }
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1028,6 +1451,10 @@ function start(){
|
||||
buildPerpSign();
|
||||
buildDistanceCases();
|
||||
buildDistanceDetail();
|
||||
buildAngleViz();
|
||||
buildTTPViz();
|
||||
buildDihedralViz();
|
||||
buildPlanePerpSign();
|
||||
|
||||
runQuizMC({ id:'i7-perp', items:i7PerpItems, xpPerAll:14, title:'перпендикулярность' });
|
||||
runQuizMC({ id:'i7-sign', items:i7SignItems, xpPerAll:12, title:'признак' });
|
||||
@@ -1037,12 +1464,24 @@ function start(){
|
||||
runQuizMC({ id:'i8-type', items:i8TypeItems, xpPerAll:12, title:'тип расстояния' });
|
||||
runQuizMC({ id:'i8-true', items:i8TrueItems, xpPerAll:10, title:'верно/неверно' });
|
||||
|
||||
runQuizMC({ id:'i9-elem', items:i9ElemItems, xpPerAll:12, title:'элементы наклонной' });
|
||||
runQuizInput({ id:'i9-cube', items:i9CubeItems, xpPerAll:16, title:'углы в кубе' });
|
||||
runQuizMC({ id:'i9-ttp', items:i9TtpItems, xpPerAll:12, title:'ТТП' });
|
||||
|
||||
runQuizMC({ id:'i10-dihedral', items:i10DihedralItems, xpPerAll:12, title:'двугранный угол' });
|
||||
runQuizMC({ id:'i10-sign', items:i10SignItems, xpPerAll:12, title:'признак ⊥ плоскостей' });
|
||||
runQuizMC({ id:'i10-cube', items:i10CubeItems, xpPerAll:12, title:'⊥ грани куба' });
|
||||
|
||||
renderBoss(7);
|
||||
renderBoss(8);
|
||||
renderBoss(9);
|
||||
renderBoss(10);
|
||||
|
||||
document.getElementById('mark-7').addEventListener('click', function(){ markRead(7); });
|
||||
document.getElementById('mark-8').addEventListener('click', function(){ markRead(8); });
|
||||
refreshMarkBtn(7); refreshMarkBtn(8);
|
||||
document.getElementById('mark-9').addEventListener('click', function(){ markRead(9); });
|
||||
document.getElementById('mark-10').addEventListener('click', function(){ markRead(10); });
|
||||
refreshMarkBtn(7); refreshMarkBtn(8); refreshMarkBtn(9); refreshMarkBtn(10);
|
||||
refreshTabs();
|
||||
|
||||
var tabs = document.querySelectorAll('.sec-tab[data-tab]');
|
||||
|
||||
Reference in New Issue
Block a user