Оглавление
Введение
Представьте: 80-я минута, счёт 1:1. Нападающий соперника получает мяч на фланге и уходит в рывок вдоль бровки. Защитник бежит рядом, чуть левее — между нападающим и центром по��я. Где-то в центре полузащитник соперника уже прицеливается для прострела.
И в этот момент защитник должен принять решение — молниеносно, без калькулятора, без времени на раздумья: я контролирую ситуацию или мне нужна помощь партнёра?
Опытный защитник решает это интуитивно. Но что именно стоит за этой интуицией? Оказывается — вполне конкретная математика. Причём такая, которую проходят в школе.
У защитника есть зона контроля — сектор пространства, в котором он способен среагировать на действия нападающего. Её размер определяется тремя физическими факторами: временем реакции, скоростью бега и углом периферийного зрения. Пока нападающий находится внутри этого сектора — защитник держит ситуацию под контролем. Как только нападающий выходит за его границу — контроль потерян, нужна подстраховка.
Задача, которую мы разберём в этой статье, даёт конкретный ответ на конкретный вопрос: окажется ли нападающий в зоне контроля защитника в момент приёма паса — и когда защитнику нужно звать партнёра?
Для решения не понадобится ничего сверхъестественного: уравнения прямых, расстояние между точками, три геометрических условия. Весь необходимый аппарат вы уже проходили — просто, возможно, не думали, что он помогает принимать решения на футбольном поле.
В конце статьи мы реализуем модель в среде Engee на языке Julia — с визуализацией зоны контроля в начальный момент и через время t1.
Немного истории: от кривой Бугера до зонального контроля
В 1732 году французский математик и физик Пьер Бугер — тот самый, чьим именем назван закон ослабления света в оптике — впервые формально поставил задачу, которая сегодня называется задачей преследования.

Сценарий был морским: пиратский корабль преследует торговое судно. Пират всегда направляет нос корабля точно на цель. Вопрос: какую кривую опишет пират и настигнет ли он жертву?
Бугер вывел уравнение этой кривой. Впоследствии она получила название кривой преследования — или courbe du chien («кривая собаки»): та же задача популярно формулировалась как «собака гонится за зайцем». Суть проста: преследователь в каждый момент времени направляет свою скорость прямо к текущему положению цели.
Это красиво. Но для футбола — нереалистично.
Опытный защитник не бежит туда, где нападающий находится сейчас. Он контролирует пространство рядом с собой — зону, из которой способен среагировать. Это принципиально другая стратегия, и математика у неё другая.
Наша задача устроена иначе, чем задача Бугера. Оба игрока движутся прямолинейно с постоянными скоростями. Время проверки задаётся извне — это время, за которое защитник способен среагировать с учётом реакции. Нужно вычислить, где окажется каждый из иг��оков через t1 секунд, и ответить на геометрический вопрос: попадает ли нападающий в зону контроля защитника?
Именно такой подход лежит в основе современной спортивной аналитики. В 2011 году физик Уильям Спирмен, работавший в аналитическом отделе Liverpool FC, предложил модель pitch control: для каждой точки поля и каждого момента времени она вычисляет вероятность того, что игрок данной команды окажется там раньше соперника. В основе — ровно та же кинематика: прямолинейное движение, фиксированный момент времени, геометрический критерий.

Наша модель — частный, математически строгий случай той же идеи. Не карта всего поля, а один конкретный эпизод: один защитник, один нападающий, одна зона контроля.
Откуда берётся зона контроля: биомеханика защитника
Прежде чем писать формулы, разберёмся с физическим смыслом. Зона контроля — это не условная область на тактической доске. Это вполне конкретный сектор пространства, размер и форма которого жёстко определяются физиологией и биомеханикой игрока.
Время реакции — почему защитник не реагирует мгновенно
Между зрительным сигналом и первым шагом проходит цепочка последовательных процессов:
Восприятие — зрительный сигнал достигает коры головного мозга: ~20 мс
Обработка — оценка ситуации и принятие решения: ~130–150 мс
Мышечный ответ — от сигнала мозга до начала движения: ~50 мс
Суммарно: τ≈0.2 с. Кажется немного. Но за это время нападающий на скорости 7 м/с уйдёт на 1.4 м. А защитник всё ещё стоит на месте.
Именно поэтому время t1 в модели — это не просто расстояние делённое на скорость. Это расстояние делённое на скорость плюс время реакции:

Радиус контроля R
Рассматриваемый сценарий — фланговое сопровождение: нападающий бежит с мячом вдоль бровки, защитник рядом, между нападающим и центром поля. Радиус определяется максимальным расстоянием плотной опеки — типовое значение для профессионального футбола: R≈2–3 м.
Угол сектора φ
Защитник движется боком вдоль бровки, контролируя нападающего сбоку — работает периферийное зрение. Футболисты высокого уровня уверенно отслеживают объекты в секторе ±30-45° от оси взгляда. Итого: φ ≈ 60°- 90°.
Направление зоны контроля
Защитник всегда располагается между нападающим и центром поля — левее нападающего при атаке по правому флангу. Поэтому зона контроля направлена вправо от вектора движения защитника — в сторону бровки, где находится нападающий, как показано на рис. 3.

Итого: параметры модели
Параметр | Значение в программе |
|---|---|
(xc,yc) — координаты защитника | (−2.5, 0.0) м |
Vc — скорость защитника | 5.0 м/с |
βc — направление защитника | 0°(на север) |
(x1,y1) — координаты нападающего | (0.0, 0.0) м |
V1 — скорость нападающего | 5.2 м/с |
β1 — направление нападающего | 0°(на север) |
R — радиус контроля | 3.0 м |
φ — угол сектора | 90° |
τ — время реакции | 0.2 с |
Постановка задачи
Зафиксируем начальный момент времени. Оба игрока уже в движении — защитник сопровождает нападающего вдоль бровки.
Защитник — точка L с координатами (xc,yc), скоростью Vc и направлением βc. Располагается левее нападающего — между ним и центром поля.
Нападающий — точка A с координатами (x1,y1), скоростью V1 и направлением β1. Движется вдоль бровки.
Зона контроля — сектор MLK с вершиной в точке L, радиусом R и углом φ, направленный вправо от вектора скорости защитника — в сторону бровки. В начальный момент нападающий находится внутри зоны.
Начальное расстояние между игроками:

Начальное расстояние между игроками:

Оба игрока движутся прямолинейно с постоянными скоростями — разумное приближение для короткого отрезка времени в 1–2 секунды.
Вопрос 1: окажется ли нападающий в зоне контроля защитника через время t1?
Вопрос 2: через сколько секунд texittexit нападающий покинет зону контроля — когда защитнику нужно звать партнёра?

Математика: как это решается
Шаг 1. Компоненты скоростей
Переводим скорости из азимутального представления в декартовы составляющие. Азимут отсчитывается от оси OY (север) по часовой стрелке — поэтому синус даёт горизонтальную составляющую, косинус — вертикальную:
Для защитника:

Для нападающего:

Шаг 2. Координаты угловых точек сектора
Зона контроля направлена перпендикулярно от вектора движения защитника — в сторону бровки, где находится нападающий. Направление зависит от того, по какому флангу идёт атака. Единая формула для обоих случаев — через параметр δ:

Шаг 3. Новые положения через время t1
Через время t1 нападающий окажется в точке A′, а вся зона контроля сместится вместе с защитником:

Обратите внимание: разность (xA′−xL′) — это смещение нападающего относительно защитника за время t1. Это хорошая проверка правильности формул.
Шаг 4. Уравнения границ сектора
Каждая граница сектора — прямая через две известные точки. Запишем в форме Ax+By+C=0:
Граница M′L′:

Граница K′L′:

Шаг 5. Три условия попадания в сектор
Сектор M′L′K′ — пересечение трёх областей: круга радиуса R с центром L′ и двух полуплоскостей. Нападающий попадает в зону тогда и только тогда, когда выполнены все три условия одновременно.
Условие 1 — нападающий не дальше R от защитника:

Условие 2 — A′ и K′ по одну сторону от прямой M′L′′:

Условие 3 — A′A′ и M′M′ по одну сторону от прямой K′L′:

Смысл условий 2 и 3. Подстановка точки в уравнение прямой даёт число, знак которого определяет сторону от прямой. Если два числа имеют одинаковый знак — точки по одну сторону. Произведение ≥ 0 — математически компактная запись этого факта.
Если все три условия выполнены — нападающий в зоне, ситуация под контролем. Если хотя бы одно нарушено — нужна подстраховка.
Шаг 6. Время выхода из зоны
Алгоритм также находит момент texit — когда нападающий покинет зону контроля. Это делается перебором с шагом 0.01 с.
Это позволяет дать защитнику конкретную рекомендацию: подать ��игнал партнёру не позднее чем за τ секунд до потери контроля:

Итоговые рекомендации
Результат | Рекомендация |
|---|---|
Нападающий в зоне (t1) ✅ | Держишь — ситуация под контролем |
Нападающий вне зоны (t1) ❌ | Нужна подстраховка немедленно |
texit велико | Торопиться не нужно |
texit мало | Зови партнёра заранее |
Реализация в Engee
Всю описанную математику мы реализовали в среде Engee на языке Julia.
Скрипт разбит на шесть логических блоков.
Блок 1. Параметры модели — все числа в одном месте:
# Защитник — левее нападающего, между ним и центром поля xc = -2.5 # X защитника yc = 0.0 # Y защитника Vc = 5.0 # скорость, м/с βc = 0.0 # направление (на север), азимут 0° R = 3.0 # радиус зоны контроля, м φ = 90.0 # угол сектора, градусы τ = 0.2 # время реакции, с # Нападающий — у правой бровки x1 = 0.0 y1 = 0.0 V1 = 5.2 # скорость, м/с β1 = 0.0 # направление (на север), азимут 0°
Блок 2. Расстояние и время — с учётом реакции:
D1 = sqrt((xc - x1)^2 + (yc - y1)^2) t1 = D1 / Vc + τ
Блок 3. Скорости и координаты сектора: .
deg2r(d) = d * π / 180 vel(V, β_deg) = (V * sin(deg2r(β_deg)), V * cos(deg2r(β_deg))) Vxc, Vyc = vel(Vc, βc) Vx1, Vy1 = vel(V1, β1) # Зона вправо (+90° от направления движения) βM = βc + 90.0 - φ/2 βK = βc + 90.0 + φ/2 xM = xc + R*sin(deg2r(βM)); yM = yc + R*cos(deg2r(βM)) xK = xc + R*sin(deg2r(βK)); yK = yc + R*cos(deg2r(βK))
Блок 4. Три условия попадания:
xA2 = xA + t1*Vx1; yA2 = yA + t1*Vy1 xL2 = xL + t1*Vxc; yL2 = yL + t1*Vyc xM2 = xM + t1*Vxc; yM2 = yM + t1*Vyc xK2 = xK + t1*Vxc; yK2 = yK + t1*Vyc A_ML = yM2-yL2; B_ML = xL2-xM2; C_ML = -xL2*A_ML - yL2*B_ML A_KL = yK2-yL2; B_KL = xL2-xK2; C_KL = -xL2*A_KL - yL2*B_KL dist_AL2 = sqrt((xA2-xL2)^2 + (yA2-yL2)^2) cond1 = dist_AL2 <= R cond2 = (xA2*A_ML+yA2*B_ML+C_ML)*(xK2*A_ML+yK2*B_ML+C_ML) >= 0 cond3 = (xA2*A_KL+yA2*B_KL+C_KL)*(xM2*A_KL+yM2*B_KL+C_KL) >= 0 in_zone = cond1 && cond2 && cond3
Блок 5. Время выхода из зоны — перебором с шагом 0.01 с:
t_exit = NaN for t in 0.0:0.01:10.0 if !in_zone_at(t) global t_exit = t break end end println("Выход из зоны: t_exit = $(round(t_exit, digits=2)) с") println("Сигнал партнёру не позднее: $(round(max(0.0, t_exit - τ), digits=2)) с")
Блок 6. Визуализация — начальная и смещённая зона контроля, траектории, статус:
function sector_pts(xL, yL, β_center_deg, R, φ_deg; n=80) β0 = deg2r(β_center_deg - φ_deg/2) β1 = deg2r(β_center_deg + φ_deg/2) angs = range(β0, β1, length=n) xs = [xL; [xL + R*sin(a) for a in angs]; xL] ys = [yL; [yL + R*cos(a) for a in angs]; yL] return xs, ys end zone_dir = βc + 90.0 # вправо — к бровке sx0, sy0 = sector_pts(xL, yL, zone_dir, R, φ) # t = 0 sx1, sy1 = sector_pts(xL2, yL2, zone_dir, R, φ) # t = t1
Пример вывода программы:


Практическое применение
Задача, которую мы разобрали, — не учебный пример. Она возникает везде, где есть движущийся игрок с ограниченной зоной контроля и движущаяся цель.
Тренерский анализ эпизодов
Современные тренерские штабы разбирают матчи поэпизодно. Вопрос «почему защитник не успел?» чаще всего решается интуитивно — по видео. Наша модель даёт количественный ответ: защитник не успел потому, что texit в данном эпизоде составляло 0.8 с, а не 3 с. Это конкретная цифра, с которой можно работать: менять стартовую позицию, скорость выдвижения, момент подачи сигнала партнёру.
Индивидуальная подготовка защитников
Параметры модели — R, φ, τ — индивидуальны для каждого игрока. Измерив их на тренировке, можно построить персональную зону контроля и сравнить её с зонами соперников. Это даёт тренеру объективную основу: кого ставить против быстрого нападающего, кому нужна подстраховка на правом фланге.
Связь с pitch control
Модель Спирмена строит карту контроля для всего поля сразу. Наша модель — точечная: один защитник, один нападающий, один эпизод. Но математический аппарат тот же самый. По сути, pitch control — это наша модель, запущенная параллельно для нескольких сотен точек поля и всех пар игроков одновременно.
За пределами футбола
Та же математика работает в любом командном виде спорта с зональной опекой — хоккей, баскетбол, гандбол. Везде есть движущийся защитник с ограниченным углом зрения и движущийся нападающий. Везде стоит один и тот же вопрос: сколько осталось времени до потери контроля?
Заключение
Мы начали с простого игрового эпизода — защитник сопровождает нападающего вдоль бровки — и пришли к работающей математической модели, которая даёт конкретные ответы на конкретные тактические вопросы.
По пути выяснилось несколько неочевидных вещей.
Во-первых, интуиция опытного защитника — это не магия. За ней стоит кинематика: относительная скорость, радиус контроля, угол периферийного зрения. Всё это поддаётся измерению и расчёту.
Во-вторых, математика здесь действительно школьная. Уравнение прямой, расстояние между точками, три геометрических условия — этого достаточно, чтобы построить модель, которая по структуре не отличается от того, что используется в профессиональных системах спортивной аналитики.
В-третьих, главный результат модели — не просто «да» или «нет». Это число texit: сколько секунд у защитника до потери контроля. Именно это число превращает качественное тренерское наблюдение в количественную рекомендацию.
В-четвёртых, модель универсальна. Та же математика работает везде, где есть движущийся наблюдатель с сектором обзора и движущаяся цель — хоккей, баскетбол, робототехника и т.д.. Алгоритм одинаков. Меняются только числа во входных параметрах.
Пьер Бугер в 1732 году решал задачу для пиратского корабля. Уильям Спирмен в 2011 году — для футбольного поля. Мы в этой статье — для одного конкретного эпизода с одним защитником и одним нападающим. Все три задачи — об одном и том же: как движущийся наблюдатель контролирует движущуюся цель. Математика не изменилась за триста лет. Изменились только приложения.
Следующий шаг — учесть, что защитник не движется прямолинейно. Он реагирует на нападающего, меняет направление, ускоряется. Это уже дифференциальные уравнения и задача оптимального управления. Но фундамент — ровно тот, что мы разобрали здесь.
