feat(trigcircle): Фаза 6 — простейшие тригонометрические уравнения
Режим уравнения fn(x)=a (sin/cos/tg): окружность подсвечивает ВСЕ решения на [0,2π) (точки + направляющая линия значения), а панель показывает общую формулу через KaTeX: sin x=a → x=(-1)ⁿ·arcsin a + πn; cos x=a → x=±arccos a + 2πn; tg x=a → x=arctg a + πn. Для табличных значений главное значение подставляется точно (arcsin½=π/6 и т.п.), для нетабличных — символьно (\arcsin a). |a|>1 для sin/cos → «нет решений». Список решений в градусах. setEquation встаёт на первое решение; clearEquation выходит из режима. Аддитивно: новое поле this.eq + методы setEquation/clearEquation/_drawEquation + хук в draw(); glue trigSetEqFn/trigSolve/trigClearEq/trigEqKey; секция «Уравнение» в панели labs-bodies. Verified: node --check; headless-смоук 13/13 (решения sin/cos/tg/один/нет; формулы (-1)ⁿ/±/+πn/none/нетабличное→arcsin) + изолированная отрисовка _drawEquation без throw. Эмодзи нет. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -582,6 +582,23 @@
|
||||
<div class="gp-section-title" style="margin-bottom:8px">Точные значения · приведение</div>
|
||||
<div id="trig-formula" style="margin-bottom:14px;font-size:0.78rem;color:var(--text);background:rgba(155,93,229,0.06);border:1px solid rgba(155,93,229,0.15);border-radius:10px;padding:9px 11px">—</div>
|
||||
|
||||
<!-- Equation solver: fn(x) = a -->
|
||||
<div class="gp-section-title" style="margin-bottom:8px">Уравнение</div>
|
||||
<div style="display:flex;align-items:center;gap:5px;margin-bottom:6px;flex-wrap:wrap">
|
||||
<button class="trig-eq-fn trig-fn-btn active" onclick="trigSetEqFn('sin',this)" style="--fc:#EF476F">sin</button>
|
||||
<button class="trig-eq-fn trig-fn-btn" onclick="trigSetEqFn('cos',this)" style="--fc:#06D6E0">cos</button>
|
||||
<button class="trig-eq-fn trig-fn-btn" onclick="trigSetEqFn('tg',this)" style="--fc:#FFD166">tg</button>
|
||||
<span style="color:var(--text-3);font-size:0.82rem;font-weight:700">x =</span>
|
||||
<input id="trig-eq-input" type="number" step="0.1" placeholder="a" onkeydown="trigEqKey(event)"
|
||||
style="width:58px;padding:6px 8px;border:1.5px solid var(--border-h);border-radius:8px;background:#fff;color:var(--text);font-family:'Manrope',sans-serif;font-size:0.82rem;outline:none" />
|
||||
</div>
|
||||
<div style="display:flex;gap:6px;margin-bottom:8px">
|
||||
<button class="preset-btn" style="flex:1" onclick="trigSolve()">Решить</button>
|
||||
<button class="preset-btn" style="flex:1" onclick="trigClearEq()">Сброс</button>
|
||||
</div>
|
||||
<div id="trig-eq-formula" style="font-size:0.82rem;color:var(--text);margin-bottom:4px;line-height:1.7"></div>
|
||||
<div id="trig-eq-sols" style="font-size:0.72rem;color:var(--text-3);margin-bottom:14px"></div>
|
||||
|
||||
<!-- Notable angles -->
|
||||
<div class="gp-section-title" style="margin-bottom:8px">Табличные углы</div>
|
||||
<div style="display:flex;flex-wrap:wrap;gap:4px;margin-bottom:14px">
|
||||
|
||||
Reference in New Issue
Block a user