Commit Graph

4 Commits

Author SHA1 Message Date
Maxim Dolgolyov fa034fee7c feat(trainer): тема «Углы» — +11 генераторов + 3 фигуры (максимум разнообразия)
Реализован раздел B плана ROADMAP_V4_VARIETY. Все «корень-вперёд», целые ответы.

Генераторы (g-angles): ang-alt-exterior (накрест внешние), ang-coint-exterior
(односторонние внешние), ang-parallel-twostep (двухшаговая), ang-alt-solve
(накрест заданы выражениями — найти x), ang-bisector (биссектриса, a/2),
ang-complementary (дополнительные, 90−a), ang-right-acute (острый угол прям.
треугольника, 90−a), ang-parallelogram (соседний угол, 180−a), ang-polygon-missing
(недостающий угол n-угольника), ang-triangle-ratio (углы в отношении p:q:r —
наибольший), ang-clock (угол между стрелками часов).

figures.js: +3 типа (angle-bisector, complementary, clock) + расширен
parallelogram (markAngle — дуги углов вместо размеров). ang-right-acute
переиспользует triangle-angles (угол 90°), ang-polygon-missing — regular-polygon.

Итого 189 генераторов; тема «Углы» — 20 генераторов. Смоук v41 91934 проверки
(рендер фигур, приём/отказ ответа, шаги→LaTeX); figures-смоук 18565 / 3060
рендеров на 51 геом-генераторе.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 16:26:42 +03:00
Maxim Dolgolyov 16ddb27013 feat(trainer): V4.1 группа 6 — 20 геом-генераторов + 10 новых типов фигур (ЗАВЕРШЕНИЕ V4.1)
Финальная, шестая волна плана v4. Все compute «корень-вперёд» (пифагоровы
тройки/четвёрки, целые/конечные ответы) с чертежами.

figures.js — 10 НОВЫХ типов: parallel-lines-transversal, isosceles,
vertical-angles, points-distance, space-diagonal-box, l-shape, thales-parallel,
inscribed-central-angle, chord-circle, tangent-circle; + расширены rectangle
(diagonal/unknown/area-метка) и two-similar (side2/mode area/hideK); хелперы
tick (равные стороны) и circleSvg.

Генераторы:
- Углы: ang-parallel-transversal (соответственные), ang-isosceles-base,
  ang-vertical.
- Пифагор: pyth-perimeter, pyth-distance (расстояние между точками),
  pyth-rect-diagonal, pyth-space-diagonal (3D, пифагорова четвёрка ×s).
- Площади: area-rect-inverse (сторона по площади), area-l-shape (составная),
  area-sector (π≈3,14).
- Многоугольники: poly-diagonals (n(n−3)/2), poly-find-n (по углу),
  poly-exterior-sum (360/n).
- Подобие: sim-scale-factor (k по сторонам), sim-area-ratio (k²), sim-thales,
  sim-map-scale.
- Окружность: circ-inscribed-angle (вписанный=½центрального), circ-chord-pyth
  (хорда через радиус), circ-tangent-len (касательная).

Итого 175 генераторов (V4.1 закрыта: 91 новый генератор за фазу). Смоук v41
71386 проверок (вкл. рендер всех фигур: нет NaN/<script>, «?» на искомой);
figures-смоук 13846 проверок / 2280 рендеров на 38 геом-генераторах.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 16:04:50 +03:00
Maxim Dolgolyov 1dcde8790a feat(trainer): тема «Окружность» + режим «читать условие с чертежа»
Окружность (новая геом-тема g-circle, 9 кл, π ≈ 3,14 → ответ — конечная
десятичная дробь, ученик вводит её): 4 генератора — длина окружности по радиусу
(2πr), по диаметру (πd), площадь круга (πr²), длина дуги ((n/360)·2πr, n=45·k,
require r·k чётно → дробь конечная). Новые типы фигур: circle (радиус/диаметр/
заливка) и circle-arc (два радиуса под центральным углом + выделенная дуга).

Режим «читать значения с чертежа»: у всех 19 геом-генераторов добавлено
figurePrompt (краткое условие); переключатель «Текст / На чертеже» (#tr-figmode)
на странице, выбор сохраняется в localStorage. В режиме чертежа числа берутся с
фигуры, текст минимальный. Движок прокидывает figurePrompt; showStatement
выбирает полный текст или промпт; renderFigureToggle показан только для задач с
чертежом; для текстовых/алгебраических задач режим скрыт, проверка ответа от
режима не зависит. На чертеж n-угольника выведено число сторон (n = …).

Верификация: headless-смоук 6968 проверок / 1140 рендеров; ответы окружности
конечные и принимаются движком (1600 экземпляров, округление до 2 знаков ok);
inline-скрипт парсится; адверсариал-ревью — circle clean, toggle без high/medium
(2 low устранены: скрытие тумблера при неудаче генерации + подпись n сторон).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 12:49:15 +03:00
Maxim Dolgolyov ff9900bdcc feat(trainer): геометрические чертежи задач — движок фигур + иллюстрации во всех геом. темах
TrainerFigures (frontend/js/trainer/figures.js) — безопасный SVG-рендер
«фигуры как данные» (модель SimForge): 11 типов — прямоугольный треугольник,
углы треугольника/смежные/внешний, прямоугольник, квадрат, треугольник по
основанию и высоте, трапеция, параллелограмм, ромб, правильный n-угольник,
подобные треугольники. Чертёж строится из чисел (params),  без eval/Function,
подписи экранируются, искомая величина — «?». Белые штрихи под индиго-сцену.

- generators.js: figure-спека на всех 15 геом-генераторах (Углы, Пифагор,
  Площади, Многоугольники, Подобие) — привязка размеров к параметрам задачи.
- _trainer_engine.js: figure прокидывается в problem.
- trainer.html: контейнер #tr-figure в шапке-герое, renderFigure() в newProblem,
  скрыт для текстовых задач, скрипт-тег, CSS.

Верификация: headless-смоук 5489 проверок / 900 рендеров (нет NaN/<script>/
обработчиков, «?» на искомой); адверсариал-ревью 4/4 группы clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 12:23:03 +03:00