Представьте: 80-я минута, счёт 1:1. Нападающий соперника получает мяч на фланге и уходит в рывок вдоль бровки. Защитник бежит рядом, чуть левее — между нападающим и центром поля. Где-то в центре полузащитник соперника уже прицеливается для прострела.
И в этот момент защитник должен принять решение — молниеносно, без калькулятора, без времени на раздумья: я контролирую ситуацию или мне нужна помощь партнёра?
Опытный защитник решает это интуитивно. Но что именно стоит за этой интуицией? Оказывается — вполне конкретная математика. Причём такая, которую проходят в школе.
У защитника есть зона контроля — сектор пространства, в котором он способен среагировать на действия нападающего. Её размер определяется тремя физическими факторами: временем реакции, скоростью бега и углом периферийного зрения. Пока нападающий находится внутри этого сектора — защитник держит ситуацию под контролем. Как только нападающий выходит за его границу — контроль потерян, нужна подстраховка.
Задача, которую мы разберём в этой статье, даёт конкретный ответ на конкретный вопрос: окажется ли нападающий в зоне контроля защитника в момент приёма паса — и когда защитнику нужно звать партнёра?
Для решения не понадобится ничего сверхъестественного: уравнения прямых, расстояние между точками, три геометрических условия. Весь необходимый аппарат вы уже проходили — просто, возможно, не думали, что он помогает принимать решения на футбольном поле.
В конце статьи мы реализуем модель в среде Engee на языке Julia — с визуализацией зоны контроля в начальный момент и через время t1.
Немного истории: от кривой Бугера до зонального контроля
В 1732 году французский математик и физик Пьер Бугер — тот самый, чьим именем назван закон ослабления света в оптике — впервые формально поставил задачу, которая сегодня называется задачей преследования.
Рисунок 1 - Пьер Бугер
Сценарий был морским: пиратский корабль преследует торговое судно. Пират всегда направляет нос корабля точно на цель. Вопрос: какую кривую опишет пират и настигнет ли он жертву?
Бугер вывел уравнение этой кривой. Впоследствии она получила название кривой преследования — или courbe du chien («кривая собаки»): та же задача популярно формулировалась как «собака гонится за зайцем». Суть проста: преследователь в каждый момент времени направляет свою скорость прямо к текущему положению цели.
Это красиво. Но для футбола — нереалистично.
Опытный защитник не бежит туда, где нападающий находится сейчас. Он контролирует пространство рядом с собой — зону, из которой способен среагировать. Это принципиально другая стратегия, и математика у неё другая.
Наша задача устроена иначе, чем задача Бугера. Оба игрока движутся прямолинейно с постоянными скоростями. Время проверки задаётся извне — это время, за которое защитник способен среагировать с учётом реакции. Нужно вычислить, где окажется каждый из игроков через t1 секунд, и ответить на геометрический вопрос: попадает ли нападающий в зону контроля защитника?
Именно такой подход лежит в основе современной спортивной аналитики. В 2011 году физик Уильям Спирмен, работавший в аналитическом отделе Liverpool FC, предложил модель pitch control: для каждой точки поля и каждого момента времени она вычисляет вероятность того, что игрок данной команды окажется там раньше соперника. В основе — ровно та же кинематика: прямолинейное движение, фиксированный момент времени, геометрический критерий.
Рисунок 2 - Уильям Спирмен
Наша модель — частный, математически строгий случай той же идеи. Не карта всего поля, а один конкретный эпизод: один защитник, один нападающий, одна зона контроля.
Откуда берётся зона контроля: биомеханика защитника
Прежде чем писать формулы, разберёмся с физическим смыслом. Зона контроля — это не условная область на тактической доске. Это вполне конкретный сектор пространства, размер и форма которого жёстко определяются физиологией и биомеханикой игрока.
Время реакции — почему защитник не реагирует мгновенно
Между зрительным сигналом и первым шагом проходит цепочка последовательных процессов:
Восприятие — зрительный сигнал достигает коры головного : ~20 мс
Обработка — оценка ситуации и принятие решения: ~130–150 мс
Мышечный ответ — от сигнала мозга до начала движения: ~50 мс
Суммарно: τ≈0.2 с. Кажется немного. Но за это время нападающий на скорости 7 м/с уйдёт на 1.4 м. А защитник всё ещё стоит на месте.
Именно поэтому время t1 в модели — это не просто расстояние делённое на скорость. Это расстояние делённое на скорость плюс время реакции:
Радиус контроля R
Рассматриваемый сценарий — фланговое сопровождение: нападающий бежит с мячом вдоль бровки, защитник рядом, между нападающим и центром поля. Радиус определяется максимальным расстоянием плотной опеки — типовое значение для профессионального футбола: R≈2–3 м.
Угол сектора φ
Защитник движется боком вдоль бровки, контролируя нападающего сбоку — работает периферийное зрение. Футболисты высокого уровня уверенно отслеживают объекты в секторе ±30-45° от оси взгляда. Итого: φ ≈ 60°- 90°.
Направление зоны контроля
Защитник всегда располагается между нападающим и центром поля — левее нападающего при атаке по правому флангу. Поэтому зона контроля направлена вправо от вектора движения защитника — в сторону бровки, где находится нападающий, как показано на рис. 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')
Математика: как это решается
Шаг 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. Engee — облачная среда динамического моделирования, работает прямо в браузере без установки и регистрации. Именно поэтому с ней справится любой, кто знаком с основами программирования: открыл ссылку — и считаешь.
Скрипт разбит на шесть логических блоков.
Блок 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°
Блок 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 - Результаты работы программы
Практическое применение
Задача, которую мы разобрали, — не учебный пример. Она возникает везде, где есть движущийся игрок с ограниченной зоной контроля и движущаяся цель.
Тренерский анализ эпизодов
Современные тренерские штабы разбирают матчи поэпизодно. Вопрос «почему защитник не успел?» чаще всего решается интуитивно — по видео. Наша модель даёт количественный ответ: защитник не успел потому, что texit в данном эпизоде составляло 0.8 с, а не 3 с. Это конкретная цифра, с которой можно работать: менять стартовую позицию, скорость выдвижения, момент подачи сигнала партнёру.
Индивидуальная подготовка защитников
Параметры модели — R, φ, τ — индивидуальны для каждого игрока. Измерив их на тренировке, можно построить персональную зону контроля и сравнить её с зонами соперников. Это даёт тренеру объективную основу: кого ставить против быстрого нападающего, кому нужна подстраховка на правом фланге.
Связь с pitch control
Модель Спирмена строит карту контроля для всего поля сразу. Наша модель — точечная: один защитник, один нападающий, один эпизод. Но математический аппарат тот же самый. По сути, pitch control — это наша модель, запущенная параллельно для нескольких сотен точек поля и всех пар игроков одновременно.
За пределами футбола
Та же математика работает в любом командном виде спорта с зональной опекой — хоккей, баскетбол, гандбол. Везде есть движущийся защитник с ограниченным углом зрения и движущийся нападающий. Везде стоит один и тот же вопрос: сколько осталось времени до потери контроля?
Заключение
Мы начали с простого игрового эпизода — защитник сопровождает нападающего вдоль бровки — и пришли к работающей математической модели, которая даёт конкретные ответы на конкретные тактические вопросы.
По пути выяснилось несколько неочевидных вещей.
Во-первых, интуиция опытного защитника — это не магия. За ней стоит кинематика: относительная скорость, радиус контроля, угол периферийного зрения. Всё это поддаётся измерению и расчёту.
Во-вторых, математика здесь действительно школьная. Уравнение прямой, расстояние между точками, три геометрических условия — этого достаточно, чтобы построить модель, которая по структуре не отличается от того, что используется в профессиональных системах спортивной аналитики.
В-третьих, главный результат модели — не просто «да» или «нет». Это число texit: сколько секунд у защитника до потери контроля. Именно это число превращает качественное тренерское наблюдение в количественную рекомендацию.
В-четвёртых, модель универсальна. Та же математика работает везде, где есть движущийся наблюдатель с сектором обзора и движущаяся цель — хоккей, баскетбол, робототехника и т.д.. Алгоритм одинаков. Меняются только числа во входных параметрах.
Пьер Бугер в 1732 году решал задачу для пиратского корабля. Уильям Спирмен в 2011 году — для футбольного поля. Мы в этой статье — для одного конкретного эпизода с одним защитником и одним нападающим. Все три задачи — об одном и том же: как движущийся наблюдатель контролирует движущуюся цель. Математика не изменилась за триста лет. Изменились только приложения.
Следующий шаг — учесть, что защитник не движется прямолинейно. Он реагирует на нападающего, меняет направление, ускоряется. Это уже дифференциальные уравнения и задача оптимального управления. Но фундамент — ровно тот, что мы разобрали здесь.