Оглавление

Введение

Представьте: 80-я минута, счёт 1:1. Нападающий соперника получает мяч на фланге и уходит в рывок вдоль бровки. Защитник бежит рядом, чуть левее — между нападающим и центром по��я. Где-то в центре полузащитник соперника уже прицеливается для прострела.

И в этот момент защитник должен принять решение — молниеносно, без калькулятора, без времени на раздумья: я контролирую ситуацию или мне нужна помощь партнёра?

Опытный защитник решает это интуитивно. Но что именно стоит за этой интуицией? Оказывается — вполне конкретная математика. Причём такая, которую проходят в школе.

У защитника есть зона контроля — сектор пространства, в котором он способен среагировать на действия нападающего. Её размер определяется тремя физическими факторами: временем реакциискоростью бега и углом периферийного зрения. Пока нападающий находится внутри этого сектора — защитник держит ситуацию под контролем. Как только нападающий выходит за его границу — контроль потерян, нужна подстраховка.

Задача, которую мы разберём в этой статье, даёт конкретный ответ на конкретный вопрос: окажется ли нападающий в зоне контроля защитника в момент приёма паса — и когда защитнику нужно звать партнёра?

Для решения не понадобится ничего сверхъестественного: уравнения прямыхрасстояние между точкамитри геометрических условия. Весь необходимый аппарат вы уже проходили — просто, возможно, не думали, что он помогает принимать решения на футбольном поле.

В конце статьи мы реализуем модель в среде Engee на языке Julia — с визуализацией зоны контроля в начальный момент и через время t1​.

Немного истории: от кривой Бугера до зонального контроля

В 1732 году французский математик и физик Пьер Бугер — тот самый, чьим именем назван закон ослабления света в оптике — впервые формально поставил задачу, которая сегодня называется задачей преследования.

Рисунок 1 - Пьер Бугер
Рисунок 1 - Пьер Бугер

Сценарий был морским: пиратский корабль преследует торговое судно. Пират всегда направляет нос корабля точно на цель. Вопрос: какую кривую опишет пират и настигнет ли он жертву?

Бугер вывел уравнение этой кривой. Впоследствии она получила название кривой преследования — или courbe du chien («кривая собаки»): та же задача популярно формулировалась как «собака гонится за зайцем». Суть проста: преследователь в каждый момент времени направляет свою скорость прямо к текущему положению цели.

Это красиво. Но для футбола — нереалистично.

Опытный защитник не бежит туда, где нападающий находится сейчас. Он контролирует пространство рядом с собой — зону, из которой способен среагировать. Это принципиально другая стратегия, и математика у неё другая.

Наша задача устроена иначе, чем задача Бугера. Оба игрока движутся прямолинейно с постоянными скоростями. Время проверки задаётся извне — это время, за которое защитник способен среагировать с учётом реакции. Нужно вычислить, где окажется каждый из иг��оков через t1 секунд, и ответить на геометрический вопрос: попадает ли нападающий в зону контроля защитника?

Именно такой подход лежит в основе современной спортивной аналитики. В 2011 году физик Уильям Спирмен, работавший в аналитическом отделе Liverpool FC, предложил модель pitch control: для каждой точки поля и каждого момента времени она вычисляет вероятность того, что игрок данной команды окажется там раньше соперника. В основе — ровно та же кинематика: прямолинейное движение, фиксированный момент времени, геометрический критерий.

Рисунок 2 - Уильям Спирмен
Рисунок 2 - Уильям Спирмен

Наша модель — частный, математически строгий случай той же идеи. Не карта всего поля, а один конкретный эпизод: один защитник, один нападающий, одна зона контроля.

Откуда берётся зона контроля: биомеханика защитника

Прежде чем писать формулы, разберёмся с физическим смыслом. Зона контроля — это не условная область на тактической доске. Это вполне конкретный сектор пространства, размер и форма которого жёстко определяются физиологией и биомеханикой игрока.

Время реакции — почему защитник не реагирует мгновенно

Между зрительным сигналом и первым шагом проходит цепочка последовательных процессов:

  • Восприятие — зрительный сигнал достигает коры головного мозга: ~20 мс

  • Обработка — оценка ситуации и принятие решения: ~130–150 мс

  • Мышечный ответ — от сигнала мозга до начала движения: ~50 мс

Суммарно: τ≈0.2 с. Кажется немного. Но за это время нападающий на скорости 7 м/с уйдёт на 1.4 м. А защитник всё ещё стоит на месте.

Именно поэтому время t1​ в модели — это не просто расстояние делённое на скорость. Это расстояние делённое на скорость плюс время реакции:

Радиус контроля R

Рассматриваемый сценарий — фланговое сопровождение: нападающий бежит с мячом вдоль бровки, защитник рядом, между нападающим и центром поля. Радиус определяется максимальным расстоянием плотной опеки — типовое значение для профессионального футбола: R≈2–3 м.

Угол сектора φ

Защитник движется боком вдоль бровки, контролируя нападающего сбоку — работает периферийное зрение. Футболисты высокого уровня уверенно отслеживают объекты в секторе ±30-45° от оси взгляда. Итого: φ ≈ 60°- 90°.

Направление зоны контроля

Защитник всегда располагается между нападающим и центром поля — левее нападающего при атаке по правому флангу. Поэтому зона контроля направлена вправо от вектора движения защитника — в сторону бровки, где находится нападающий, как показано на рис. 3.

Рисунок 3 - Зона контроля
Рисунок 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​ нападающий покинет зону контроля — когда защитнику нужно звать партнёра?

Рисунок 4 — Смещение зоны контроля: исходное положение (сектор MLK) и через t1​ (сектор M'L'K')
Рисунок 4 — Смещение зоны контроля: исходное положение (сектор MLK) и через t1​ (сектор M'L'K')

Математика: как это решается

Шаг 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

Пример вывода программы:

Рисунок 5 - Результаты работы программы
Рисунок 5 - Результаты работы программы

Практическое применение

Задача, которую мы разобрали, — не учебный пример. Она возникает везде, где есть движущийся игрок с ограниченной зоной контроля и движущаяся цель.

Тренерский анализ эпизодов

Современные тренерские штабы разбирают матчи поэпизодно. Вопрос «почему защитник не успел?» чаще всего решается интуитивно — по видео. Наша модель даёт количественный ответ: защитник не успел потому, что texit в данном эпизоде составляло 0.8 с, а не 3 с. Это конкретная цифра, с которой можно работать: менять стартовую позициюскорость выдвижениямомент подачи сигнала партнёру.

Индивидуальная подготовка защитников

Параметры модели — Rφτ — индивидуальны для каждого игрока. Измерив их на тренировке, можно построить персональную зону контроля и сравнить её с зонами соперников. Это даёт тренеру объективную основу: кого ставить против быстрого нападающего, кому нужна подстраховка на правом фланге.

Связь с pitch control

Модель Спирмена строит карту контроля для всего поля сразу. Наша модель — точечная: один защитник, один нападающий, один эпизод. Но математический аппарат тот же самый. По сути, pitch control — это наша модель, запущенная параллельно для нескольких сотен точек поля и всех пар игроков одновременно.

За пределами футбола

Та же математика работает в любом командном виде спорта с зональной опекой — хоккей, баскетбол, гандбол. Везде есть движущийся защитник с ограниченным углом зрения и движущийся нападающий. Везде стоит один и тот же вопрос: сколько осталось времени до потери контроля?

Заключение

Мы начали с простого игрового эпизода — защитник сопровождает нападающего вдоль бровки — и пришли к работающей математической модели, которая даёт конкретные ответы на конкретные тактические вопросы.

По пути выяснилось несколько неочевидных вещей.

Во-первых, интуиция опытного защитника — это не магия. За ней стоит кинематика: относительная скорость, радиус контроля, угол периферийного зрения. Всё это поддаётся измерению и расчёту.

Во-вторых, математика здесь действительно школьная. Уравнение прямой, расстояние между точками, три геометрических условия — этого достаточно, чтобы построить модель, которая по структуре не отличается от того, что используется в профессиональных системах спортивной аналитики.

В-третьих, главный результат модели — не просто «да» или «нет». Это число texitсколько секунд у защитника до потери контроля. Именно это число превращает качественное тренерское наблюдение в количественную рекомендацию.

В-четвёртых, модель универсальна. Та же математика работает везде, где есть движущийся наблюдатель с сектором обзора и движущаяся цель — хоккей, баскетбол, робототехника и т.д.. Алгоритм одинаков. Меняются только числа во входных параметрах.

Пьер Бугер в 1732 году решал задачу для пиратского корабля. Уильям Спирмен в 2011 году — для футбольного поля. Мы в этой статье — для одного конкретного эпизода с одним защитником и одним нападающим. Все три задачи — об одном и том же: как движущийся наблюдатель контролирует движущуюся цель. Математика не изменилась за триста лет. Изменились только приложения.

Следующий шаг — учесть, что защитник не движется прямолинейно. Он реагирует на нападающего, меняет направлениеускоряется. Это уже дифференциальные уравнения и задача оптимального управления. Но фундамент — ровно тот, что мы разобрали здесь.

Полезные ссылки

Готовая модель в Engee