⚖️ Эксперимент 1: Битва Интеграторов
Сравнение явного Эйлера, полунеявного Эйлера (Euler-Cromer) и метода Верле на гравитационной орбите.
Почему классический Эйлер "ломается"?
В наивной реализации Явного Эйлера (Explicit Euler) новая координата считается по старой скорости. Из-за этого при каждом шаге в систему непреднамеренно "впрыскивается" избыточная кинетическая энергия. Орбита раскручивается по спирали, а пружины разносят объект в клочья!
v += a * dt; ⚠️ Явный: накапливает ошибку энергии при dt > 0.02
Полунеявный Эйлер (Semi-Implicit) решает это перестановкой всего одной строчки: сначала обновляется скорость, и уже новая скорость двигает позицию. Это делает интегратор симплектическим (сохраняющим фазовый объем).
Метод Верле (Verlet Integration)
В методе Верле скорость даже не хранится в явном виде! Она неявно вычисляется из разности между текущей и предыдущей позицией.
// Verlet: супер-стабилен для верёвок и тканей!
const nextX = 2 * pos.x - prevPos.x + a.x * dt * dt;
const nextY = 2 * pos.y - prevPos.y + a.y * dt * dt;
prevPos.x = pos.x;
prevPos.y = pos.y;
pos.x = nextX;
pos.y = nextY;
🎯 Эксперимент 2: Баллистика и Силы Сопротивления
Сила тяжести, сопротивление воздуха (Drag) и коэффициент отскока (Restitution).
Аэродинамическое сопротивление (Air Drag)
В вакууме траектория — идеальная парабола. Но в играх сопротивление воздуха придает сочность и управляемость:
Сила направлена строго противоположно вектору скорости и растет квадратично относительно скорости: чем быстрее летит снаряд, тем жестче его тормозит воздух.
Отскок от препятствия (Restitution)
Коэффициент восстановления e ∈ [0, 1] определяет долю сохраненной скорости вдоль нормали контакта:
При e = 1 удар идеально упругий (мячик отскакивает вечно). При e = 0 — абсолютно неупругий (прилипает к земле).
Куда двигаться дальше?
Пружины и Ткань
Закон Гука, демпфирование, верёвки и мягкое желе. Узнайте, как из простых палочек и пружин сделать реалистичный ragdoll или одежду персонажа.
Столкновения и Импульсы
Детекция пересечений окружностей и многоугольников (SAT), разделение тел и расчет импульса отскока с трением.
2D Жидкости
Симуляция водной глади на соединенных столбиках (как в Terraria) и капельная жидкость на частицах с эффектом метаболов.
Большая Песочница
Единая интерактивная лаборатория: создавайте и комбинируйте пружины, шары, желе и воду прямо на экране.