Commit Graph

7 Commits

Author SHA1 Message Date
Maxim Dolgolyov ca6b93fb57 fix(geom8 ch4): §3 — маркеры прямого угла НА ВНУТРЕННЕЙ стороне касательной (к O)
Маркер прямого угла в точке касания T должен быть на той стороне,
где геометрически находится угол 90° — внутри треугольника OTA,
т.е. между направлениями T→O и T→A.

Раньше использовалось +u_radius (от центра наружу) → маркер
оказывался ВНЕ круга на дальней от A стороне. Изменено на
-u_radius (внутрь, к центру). Теперь маркер показывает угол
90° между OT и tangent правильно.

Затронуты:
- §3 Card 3.1 (статичная)
- §3 Интерактив 1 (slider OA)
- §3 Интерактив 2 (пошаговое доказательство)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 18:50:22 +03:00
Maxim Dolgolyov 1d6f97e636 fix(geom8 ch4): §3 §4 §5 — корректная геометрия SVG и подписи
Проверено 11 SVG в §3, §4, §5 — 11 исправлено.

§3 Касательные из одной точки:
- Card 3.1: пересчитаны точки касания T₁,T₂ по корректной формуле
  T_x=O_x+R²/OA, T_y=O_y±R·AT/OA (раньше координаты были произвольные);
  маркеры прямого угла направлены правильно (CCW perp для верхней,
  CW perp для нижней); все подписи вне линий касательных.
- Интерактив 1 (slider): найден баг — sinA/cosA были перепутаны
  в T_x/T_y. Теперь T₁x=cx+R*sinA, T₁y=cy−R*cosA. Маркер прямого
  угла T₂ исправлен с CCW на CW. ViewBox расширен под широкий OA.
- Интерактив 2 (proof): тот же фикс формулы + маркер прямого угла.

§4 Построение касательной:
- Card 4.1 (построение): пересчитаны точки касания T₁,T₂ как
  пересечение исходной окружности O(90,100,r=50) и вспомогательной
  M(165,100,r=75) — раньше точки были вне окружности.
- Card 4.3 (формула): точка касания T была на (107,56) — вне
  окружности. Пересчитана на T=(89,59) с правильным маркером.
- Интерактив 1 (шаги): то же исправление формулы и направлений
  маркеров прямого угла.
- Интерактив 2 (live): сlider tangent positions через радиальные
  unit-векторы для подписей вне линий.

§5 Окружности в углу:
- Card 5.1: центр окружности был на O(135,145) — не на биссектрисе
  и не равноудалён от сторон. Пересчитан на O(157,148) с r=35
  по формуле от вершины угла. T₁,T₂ — проекции центра на стороны.
  Добавлены маркеры прямого угла в обеих точках касания.
- Card 5.3: две окружности на биссектрисе с r=d·sin(α/2).
- Интерактив 1 (slider): добавлен маркер прямого угла в T₂
  (отсутствовал); направление T₁-маркера исправлено.
- Интерактив 2 (proof): то же.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 18:45:22 +03:00
Maxim Dolgolyov 2a6c214cd5 feat(geom8): Wave 3 Главы 4 — §8-§11 (центральный/вписанный углы)
§8 Центральный/вписанный углы. Дуга: slider центрального угла α от
0 до 360° с подсветкой дуги; SVG с вписанным углом и его позицией;
DnD центральный/вписанный/ни тот ни другой; калькулятор длины дуги
ℓ=α/360·2πR; тренажёр; босс.

§9 Свойство вписанного угла: dual slider центральный α + вписанный
β=α/2 на одной дуге; 5-шаговое доказательство для случая O на стороне
вписанного угла через равнобедренный △ и внешний угол; двунаправленный
калькулятор; DnD верно/неверно; тренажёр; босс.

§10 Вписанные углы на одну дугу: SVG с дугой AC и 3 вершинами
B₁,B₂,B₃ на другой части — все углы AB_iC равны; 3-шаговое
доказательство через половину центрального; калькулятор; DnD; тренажёр;
босс.

§11 Вписанный угол на диаметр: slider позиции C — угол ACB всегда
90°, прямоугольный треугольник вписан с гипотенузой = диаметр;
4-шаговое доказательство; калькулятор через Пифагор (диаметр+катет
→ другой катет); тренажёр; DnD; босс.

File: 3060 → 4549 LOC. 11 of 16 §§ Главы 4.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 18:19:26 +03:00
Maxim Dolgolyov 0bcb9e5f2e fix(geom8 ch4): §3 — подписи T₁/T₂/AT уходят с касательных, §2.1 — убран лишний cx/cy
§3 Интерактив 1 'Две касательные из внешней точки': подписи T₁ и T₂
теперь располагаются по радиальному направлению (наружу от центра)
с большим отступом, не лежат на касательной линии. Подписи длин
AT₁ и AT₂ вынесены ПЕРПЕНДИКУЛЯРНО касательным наружу (через
вычисление нормали к каждой касательной). Все подписи теперь
крупнее (font 13, Unbounded для вершин, JetBrains Mono для длин)
и читаются без наложения на линии.

§3 Интерактив 2 'Доказательство касательных по шагам': те же фиксы
плюс расширен viewBox 260×200 → 280×220 для размещения подписей.

§2 Card 2.1: убран лишний атрибут cx='100' cy='95' на <line> элементе
радиуса (line не имеет атрибутов cx/cy — игнорировалось браузером,
но загромождало код).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 18:00:32 +03:00
Maxim Dolgolyov cc7551755b feat(geom8): Wave 2 Главы 4 — §4-§7 (построение касательной, вписанные в угол, расположение окружностей, общая касательная)
§4 Построение касательной: пошаговое SVG-построение (6 шагов через
вспомогательную окружность с диаметром OA), live-слайдеры R и |OA|,
калькулятор AT=√(OA²−R²), DnD шагов построения, тренажёр, босс.

§5 Окружности вписанные в угол: слайдеры d и угол 2α — окружность
всегда касается обеих сторон, биссектриса проходит через центр;
5-шаговое доказательство; калькулятор r=d·sin(α/2); DnD утверждений;
тренажёр; босс.

§6 Взаимное расположение двух окружностей: 3 слайдера R1, R2, d с
живым определением одного из 5 случаев (внешние/касание внешнее/
пересекаются/касание внутреннее/внутренние); DnD-сортер 8 карточек
по 4 категориям; калькулятор; тренажёр; босс.

§7 Длина общей касательной: SVG внешней касательной с формулой
ℓ=√(d²−(R₁−R₂)²) + SVG внутренней касательной с ℓ=√(d²−(R₁+R₂)²);
4-шаговое доказательство через прямоугольник KT₁T₂O₂; калькулятор
обеих формул; тренажёр; босс.

File: 1638 → 3042 LOC. 7 of 16 §§ Главы 4 готовы.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 17:17:57 +03:00
Maxim Dolgolyov 17e42990ad feat(geom8): Wave 1 Главы 4 — §1-§3 (касательная)
§1 Касательная. Признак: слайдер d от 0 до 2R — секущая/касательная/не
пересекает с цветовым индикатором; 5-шаговое доказательство через
прямоугольный △OTM; калькулятор вида прямой; DnD по 3 корзинам;
тренажёр; босс.

§2 Свойство касательной: слайдер угла T — касательная ⊥ радиус OT всегда,
маркер 90° следует за T; 5-шаговое доказательство от противного;
калькулятор AT=√(|OA|²−R²); тренажёр; DnD утверждения; босс.

§3 Касательные из одной точки: слайдер |OA| — две касательные из A,
AT₁=AT₂ с тиками равенства; 5-шаговое доказательство через равенство
прямоугольных △OAT₁ и △OAT₂; калькулятор |AT|; тренажёр; DnD; босс.

GLOSSARY: +точка касания, +радиус.
File: 470 → 1549 LOC.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 16:27:54 +03:00
Maxim Dolgolyov 03d567e953 feat(catalog): Геометрия 8 (Казаков) — Phase 0 hub + 4 skeleton
- migration 017: geometry-8 hub + 4 children (Многоугольники, Площади,
  Подобие, Окружности) с parent_slug. sort_order=4, physics-8 → 5.
- geometry_8_hub.html (~380 LOC): blue/cyan hub в стиле algebra-8-hub,
  4 цветные карточки глав (amber/emerald/purple/cyan), агрегированный
  прогресс, ачивка «Мастер геометрии 8» при 56/56.
- 4 skeleton-файла chapter (geometry_8_ch1..ch4.html): полная
  инфраструктура (CSS, STATE, XP-карта, glossary, search Ctrl+K,
  sidebar, DnD, server-sync), 16/15/9/16 параграфов как stub'ы.
  Реальный контент — в последующих волнах.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 18:47:40 +03:00