0523734898
- gTangentPoints(O, P, r): касательные через полярно-полярную точку M=O+v*r²/d, h=r√(d²-r²)/d - tangent: 2 derived_line (which=0/1) из внешней точки к окружности; оба пересчитываются при движении точки или изменении радиуса/центра; _pendingCircRef хранит окружность-источник - translate: derived point P'=P+(B-A) по вектору AB; 3-фазный ввод с onHintChange(tool,2/3) - _hitTestCircle(): найти окружность под курсором (HIT=12px) - _drawLineRefHighlight(): расширен для circle (рисует дугу подсветки) - _pendingCircRef очищается в setTool() - lab.html: кнопки Симметрия/Перенос/Касательные, _GEO_PHASE_HINTS словарь, _geoShowHint(name, phase) принимает числовой phase вместо boolean Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>