Что мы вообще видим
Откройте симуляцию — и вы увидите восемь точек, которые никогда не останавливаются и никогда не сталкиваются. Это и есть Солнечная система, только очень маленькая. Разберёмся, что происходит на экране, прежде чем лезть в формулы.
С этой картинки всё удобно начать
Учебник и симуляция связаны в одну петлю: прочитали раздел → открыли модель → увидели то же самое вживую. Так знание прилипает намного быстрее.
Картина одним взглядом
В центре — Солнце: раскалённый шар, который даёт и свет, и саму «причину движения» планет. Вокруг него идут восемь планет: от быстрого крошечного Меркурия до медленного далёкого Нептуна. Тонкие кольца — это орбиты: напоминание, где планета шла в прошлый оборот. Светящийся хвост за каждой планетой — след её движения за последние несколько секунд.
И самое важное: это не записанный мультик. Компьютер не знает заранее, где будет Земля через минуту. Он смотрит, где планета сейчас и куда она движется, спрашивает «как сильно на неё сейчас тянет Солнце (и остальные планеты)?», чуть-чуть меняет скорость, чуть-чуть сдвигает саму планету — и повторяет это десятки тысяч раз в секунду. Правила короткие, а картина рождается сама.
Что можно потрогать прямо сейчас
- «Скорость времени» — в реальности Земля делает оборот за год. Мы сжимаем год в несколько секунд, чтобы успеть что-то заметить.
- «Масса Солнца» — представляем, что Солнце стало тяжелее или легче: оно начинает тянуть сильнее или слабее, и орбиты сразу реагируют.
- «+ Тело» — запускаем свою планету по круговой орбите и смотрим, как она уживается с остальными.
- Клик по планете — справа появляются её живые показания: расстояние, скорость, период. Двойной клик — камера подлетает ближе.
- Мышь — вращает камеру, колесо приближает. Мы летаем вокруг модели, как режиссёр с дроном.
Три слоя, из которых состоит вся эта магия
- Физика. Один короткий цикл: посчитать тяготение → обновить скорости → обновить позиции. Подробности — в разделе «Как компьютер это считает».
- Картинка. Библиотека Three.js превращает числа в шарики, свет и звёзды. Она ничего не решает — только рисует.
- Управление. Камера, ползунки, надписи. Они лишь передают физические желания («Солнце тяжелее вдвое») в первый слой.
Тот же рецепт — «физика отдельно, картинка отдельно» — лежит в основе почти любой симуляции: от прогноза погоды до столкновения галактик. Один раз разобравшись в нём, вы понимаете уже не одну программу, а целый класс программ.
Планеты: кто есть кто
Расстояния в модели сжаты (иначе Нептун уехал бы на 77 «меркуриев» и остался точкой в пустоте), но порядок и связь «дальше — медленнее» честные.
Меркурий
0.39 а.е. от Солнца
Год: 88 земных суток
Скорость: 47.4 км/с
Венера
0.72 а.е.
Год: 225 суток
Скорость: 35.0 км/с
Земля
1.00 а.е. — это мы
Год: 365.25 суток
Скорость: 29.8 км/с
Марс
1.52 а.е.
Год: 687 суток
Скорость: 24.1 км/с
Юпитер
5.20 а.е.
Год: 11.9 лет
Скорость: 13.1 км/с
Сатурн
9.54 а.е.
Год: 29.5 лет
Скорость: 9.7 км/с
Уран
19.2 а.е.
Год: 84 года
Скорость: 6.8 км/с
Нептун
30.1 а.е.
Год: 165 лет
Скорость: 5.4 км/с
Найдите закономерность сами: чем дальше планета, тем медленнее она летит и тем дольше её год. Почему так выходит — почти буквально следует из двух формул; дойдём до них в следующих разделах.
Мини-проверка: почему дальние планеты движутся медленнее ближних?
Гравитация по Ньютону
Правил, по которым живёт наша модель, всего два: любое тело притягивает любое другое, и чем дальше — тем слабее. Всё красивое движение планет — это только следствия этих двух строк.
Начнём с того, что вы и так знаете
Подбросьте связку ключей. Она замедляется, на миг замирает и падает обратно — потому что Земля тянет её к себе. Никто не удивляется: тяготение рядом с поверхностью привычное и очень «локальное» чувство.
А теперь бросьте ключи вперёд, сильно. Они пролетят дугу и упадут в нескольких метрах. Бросите сильнее — пролетят дальше. Дуга растягивается не потому, что «падать перестали», а потому, что лететь вперёд успевает дальше, прежде чем кончится высота.
Ньютон предложил мысленный эксперимент, который доводит эту мысль до конца. Представьте очень высокую гору с мощной пушкой наверху, стреляющей строго горизонтально:
- Медленно — ядро падает у подножия горы.
- Быстрее — пролетает километр и падает в долине.
- Ещё быстрее — пока ядро падает на один метр вниз, круглая Земля под ним «уходит» вниз тоже на метр. Ядро всё время падает — и всё время промахивается. Это и есть орбита.
Планета не «побеждает» тяготение. Она непрерывно падает на Солнце, но движется настолько быстро вбок, что всё время мимо него промахивается. Никакой магической опоры, никаких «топливных баков» для движения по кругу не нужно.
Формула и что значит каждый знак
Исаак Ньютон смог записать это одной короткой строкой. Не бойтесь: сейчас мы разберём её по буквам.
| Знак | Что это | Как думать по-человечески |
|---|---|---|
| F | Сила притяжения | Сколько «тяги» тела друг к другу испытывают. Измеряется в ньютонах: 1 Н — это усилие, которым вы держите яблоко. |
| G | Гравитационная постоянная | Одно и то же число для всей Вселенной: 6.674·10⁻¹¹. Оно просто задаёт «силу» гравитации — она вообще очень слабое взаимодействие. |
| m₁, m₂ | Массы тел | Чем тяжелее хотя бы одно из тел, тем сильнее тяга. Массу Солнца мы как раз и крутим ползунком в симуляции. |
| r | Расстояние между центрами | От центра до центра, а не «от поверхности». Для шаров это законно — ведем себя так, будто вся масса в центре. |
| r² | Расстояние в квадрате | Вот тут спрятано «очень быстро слабеет»: 2 раза дальше — в 4 раза слабее, 3 раза — в 9, 10 раз — в 100. |
Читается формула так: «тяга тем сильнее, чем тяжелее тела, и тем стремительнее падает, чем дальше они друг от друга».
Числа для масштаба: Солнце тянет Землю с силой примерно 3.5·10²² ньютонов — это как если бы на весах висело несколько триллионов гружёных самосвалов. При этом «падение» Земли к Солнцу всего около 0.006 м/с² — в полторы тысячи раз слабее того, с чем вы имеете дело, роняя телефон. Крошечное ускорение, которое работает каждую секунду миллиарды лет, — и получается орбита.
Второй шаг: от силы к ускорению (и почему все падают одинаково)
Сила — это ещё не движение. Движение меняет ускорение: «насколько быстрее становится тело каждую секунду». По второму закону Ньютона ускорение = сила ÷ масса. Подставим нашу формулу — и случится интересное: масса падающего тела сократится.
| Знак | Что это | Как думать по-человечески |
|---|---|---|
| a | Ускорение | Насколько быстро растёт скорость (в метрах в секунду за каждую секунду). |
| G · M | Масса «тянущего» тела | Здесь M — масса того, что тянет (Солнца, Земли). Она единственная осталась в формуле. |
| r² | Квадрат расстояния | Снова: далеко — значит намного слабее. |
Отсюда важный бытовой вывод: молоток и пёрышко падают одинаково, если нет воздуха (астронавты Apollo 15 проверили это на Луне). И следствие для нас: орбита планеты почти не зависит от её массы — зависит только от того, где она и куда движется. Поэтому в симуляции Земля и гипотетическая «вдвое тяжелее Земля» летели бы по одной и той же орбите.
Ещё одна полезная аналогия: камень на верёвочке
Раскрутите камень на верёвочке. Верёвочка всё время тянет камень к центру — это и есть та самая «тяга». Отпустите — и камень полетит не вверх и не вниз, а по прямой, по касательной к кругу.
У планет роль верёвочки играет тяготение. Порвите её (мысленно выключите Солнце) — и все восемь планет разлетятся по прямым линиям, каждая в свою сторону, ровно туда, куда она в этот момент смотрела носом. Именно это вы увидите в симуляции, если уменьшите массу Солнца почти до нуля.
Знаменитая картинка про тяжёлый шар, продавивший натянутую ткань, — это картинка про Эйнштейна и искривление пространства, а не про Ньютона. Она красиво объясняет «почему вообще есть тяготение», но считать орбиты по ней нельзя. В нашей модели работает честный ньютоновский закон: тела тянутся друг к другу, и мы считаем это шаг за шагом.
Вопрос 1. Если бы Солнце волшебным образом исчезло, что стала бы делать Земля?
Вопрос 2. Расстояние между двумя телами увеличили втрое. Как изменится сила тяготения?
Орбитальная скорость
Скорость — это единственная «ручка настройки», по которой Вселенная решает, где планете жить: упасть на Солнце, остаться рядом или улететь в межзвёздное пространство навсегда.
«Вечно падаю мимо» — теперь с числами
Вернёмся к пушке на горе. Есть одна-единственная скорость, при которой ядро падает ровно с той кривизной, что и поверхность планеты. Её называют круговой, или орбитальной, скоростью. Получается она из простой требовательности: тяготение должно закручивать траекторию ровно так сильно, как нужно для круга.
| Знак | Что это | Как думать по-человечески |
|---|---|---|
| v | Круговая скорость | Ровно та скорость «вбок», при которой не падаешь и не улетаешь. |
| √ | Корень | Обратная к квадрату операция: потяни в 4 раза слабее — скорость нужна меньше всего в 2 раза. |
| G · M | Масса того, вокруг чего летим | Чем тяжелее «хозяин» орбиты, тем быстрее надо двигаться, чтобы удержаться. |
| r | Расстояние до центра | Дальше — медленнее. Вот она, закономерность из первого раздела. |
Подставьте числа для Земли (M — масса Солнца, r = 150 млн км) — получится 29.8 км/с, около 107 000 км/ч. Мы летим вокруг Солнца быстрее любой пули и не чувствуем этого, потому что летим ровно и тормозить нечему.
МКС, 400 км над нами
Круговая скорость: 7.66 км/с
Оборот за 92 минуты
Луна, 384 000 км
Круговая скорость: 1.02 км/с
Оборот за 27.3 суток
Меркурий
47.4 км/с — быстрее всех
Тут тяготение Солнца самое злое
Нептун
5.4 км/с — медленнее всех
Далеко, поэтому «спокойно»
Пушка Ньютона: посмотрите вживую
Ниже — тот самый мысленный эксперимент, только он считается по-настоящему. Четыре ядра вылетают с одной высоты горизонтально, но с разной скоростью. Единственное различие между ними — число v.
Посмотрите на синюю траекторию: она не «уходит всё дальше», а возвращается. Чуть большая скорость — это не бегство, а эллипс: планета удаляется, тормозит, падает обратно и повторяет. Так живут почти все настоящие орбиты: у Марса, у комет, у вашего тела в симуляции, если его чуть разогнать.
Вторая космическая: когда «слишком быстро» становится «навсегда»
Есть ещё один порог — вторая космическая скорость, скорость убегания. Она ровно в √2 (≈ 1.41) раза больше круговой:
Для спутника вокруг Земли это 11.2 км/с вместо 7.9. Для планеты на месте Земли — 42.1 км/с вместо 29.8. Превысили — и тело уже никогда не вернётся: оно будет вечно тормозить, но всегда продолжит путь прочь. Именно поэтому в симуляции так весело жать «+ Тело» с большой скоростью: часть тел просто уплывает за горизонт и не возвращается.
v меньше круговой → упадёт. v равна круговой → круг. Между круговой и 1.41·круговой → эллипс. 1.41·круговой и больше → прощай, Солнечная система. Вся орбитальная механика — это вариации на эти четыре строчки.
Вы вывели спутник на орбиту вокруг Земли и разогнали его ровно вдвое быстрее круговой скорости (v = 2·vкр). Что будет?
Как только поняли про скорости, остаётся один вопрос: как заставить компьютер честно просчитывать всё это миллионы раз в секунду? Ответ — в следующем разделе.
Как компьютер это считает
Компьютер не умеет «увидеть эллипс целиком». Он умеет делать одно: очень маленькие шажки. Из миллионов шажков и складывается орбита.
Всего четыре шага, и они повторяются без конца
Представьте, что вы ведёте машину с закрытыми глазами по команде штурмана. Штурман кричит: «прямо три метра!» — вы проехали три метра. Он снова посмотрел по сторонам и кричит новую команду. Чем короче команды, тем плавнее и точнее ваш путь. Это и есть численное интегрирование.
Здесь dt («дэ-тэ») — размер шажка по времени. В нашей модели это 0.00025 года, около 2.2 часов реального времени. За один земной оборот планеты компьютер делает примерно 4000 таких шажков — и каждый раз заново спрашивает у физики «куда тянуть?».
Почему шажок должен быть маленьким (и хитрым)
Самый наивный способ — «посчитал ускорение, сдвинул позицию» — называется методом Эйлера. Он прост, но у него есть скверная привычка: каждый шажок добавляет системе чуточку лишней энергии, и планеты через тысячу оборотов улетают прочь. Ошибка сама по себе крошечная, но она складывается в одну сторону — как если бы вы каждый шаг отклонялись на полградуса вправо.
Поэтому в модели используется приём «кик — дрейф — кик»: скорость пинают на полшажка, двигают планету, пересчитывают тяготение в новой точке и добирают вторую половину пинка. Эта симметричность не даёт ошибке копиться: орбита может чуть «дрожать», но не расползается. В модели, которую вы открываете, энергия орбиты Земли не уходит даже за 200 лет — это проверено автотестами.
Поиграйте с размером шага
На картинке ниже идеальная окружность — это то, что даёт точная формула. Зелёная линия — то, как идёт наша схема «кик-дрейф-кик», розовая — наивный метод Эйлера. Двигайте ползунок: он меняет размер шажка dt.
На маленьком шаге обе линии почти сливаются с идеальной. Увеличьте шаг — и увидите, как зелёная превращается в «многоугольник», а розовая начинает раскручиваться наружу. Тот же самый компромисс живёт в большой симуляции: когда вы выкручиваете «скорость времени» на максимум, шажки автоматически укрупняются, и орбиты становятся чуть грубее — ради того, чтобы всё оставалось плавным.
А почему просто не решить формулой?
Потому что формула «в лоб» есть только для двух тел: Солнце + одна планета. Как только тел три и больше, их взаимные притяжения сплетаются в задачу, у которой общего решения формулой не существует (это доказано ещё Пуанкаре). А у нас в модели восемь планет + Солнце + ваши самодельные тела. Остаётся один честный путь — считать шажками.
Именно из-за «шаговости» симуляция оказывается живее любой формулы: вы можете посреди опыта поменять массу Солнца, столкнуть две планеты, добавить комету — и всё продолжит считаться само. Формула так не умеет, а интегратор умеет.
Что произойдёт, если сделать шаг интегрирования слишком большим?
Достаточно, чтобы понимать, что считается. Теперь можно заглянуть внутрь файла и разобрать его по частям — раздел «Разбор кода».
Разбор кода по частям
Файл simulation.html — это не каша из трёх тысяч строк. Он разложен на шесть блоков, и в каждом решается ровно одна задача. Узнаете блоки — сможете менять что угодно.
Как подсмотреть в код
Правой кнопкой по файлу → «Открыть с помощью» → Блокнот (или VS Code). Внутри всё размечено крупными заголовками вида РАЗДЕЛ 1 · ЕДИНИЦЫ И ДАННЫЕ. Ищите через Ctrl+F — и вы на месте. Бояться нечего: чтобы что-то сломать, надо очень постараться, а Ctrl+Z возвращает всё назад.
Шесть блоков файла
- Единицы и данные — числа и список планет. Здесь живут «кирпичики» Вселенной.
- Сцена — рендерер, камера, свет, звёздное небо. Чистая «киностудия».
- Солнце и планеты — создание шариков, следов, подписей и колец-орбит.
- Физика — те самые ускорение → скорость → позиция. Мозг симуляции.
- Интерфейс и камера — ползунки, кнопки, клик по планете, слежение камеры.
- Главный цикл — порядок «раз в кадр: посчитать, нарисовать».
Блок данных: из чего сделана планета
Каждая планета — одна строчка. Все свойства на виду, менять одно удовольствие:
| Поле | За что отвечает | Если поменять |
|---|---|---|
| a | Расстояние до Солнца в астрономических единицах (1 а.е. = путь света 8 минут) | Планета встанет на другую орбиту и автоматически получит правильную скорость |
| inc | Наклонение орбиты в градусах | Орбита наклонится — станет видно, что система не плоская, как блины |
| size | Видимый размер шарика (в единицах экрана, а не в настоящих) | Планета станет крупнее или меньше — на физику не влияет |
| color | Цвет шарика, следа и подписи | Просто красиво |
| mass | Масса в массах Солнца | Планета начнёт сама чуть-чуть тянуть Солнце и соседей |
Физика: девять строк, которые двигают все планеты
Функция accelerations — это закон Ньютона, переведённый на язык компьютеру. Для каждой пары тел она считает расстояние и тягу:
Дальше integrate делает один шажок «кик-дрейф-кик», а advanceTime повторяет его столько раз, сколько нужно, чтобы промотать нужное время. Всё. Больше «физики» в файле нет.
GM_SUN = 4π² — это не магия, а удобная система единиц: если расстояние мерить в астрономических единицах, а время в годах, то для орбиты Земли получаем r = 1 и v = 2π ≈ 6.28. Команда круговой скорости тогда возвращает правильный ответ сама.
COMPRESS = 0.62 — сжатие дистанций для экрана. Настоящие расстояния в модели честные, а вот картинка подтягивает дальние орбиты ближе, иначе Нептун улетел бы за край.
Главный цикл: где «течёт время»
Этот блок — сердце. Он вызывается 60 раз в секунду и делает ровно две вещи: считает физику, потом рисует.
Хотите, чтобы время шло в два раза быстрее по умолчанию? Найдите yearsPerSecond и поменяйте коэффициент. Хотите, чтобы модель «дышала» точнее? Уменьшите BASE_DT (станет медленнее) или увеличьте (станет быстрее, но грубее).
Камера: своя орбита вокруг выбранной точки
Библиотека Three.js умеет только рисовать. Управлять камерой приходится самим, поэтому в файле есть свой небольшой класс OrbitCam — три строчки подключения, внутри около сотни строк арифметики:
Каждый кадр controls.update() делает одно и то же: смотрит, где камера стоит относительно точки target, пересчитывает это в два угла и расстояние, добавляет повороты от мыши и обратно переводит в координаты. Плюс две маленькие функции: focusOn(номерТела) подлетает к планете, а followTarget() каждый кадр тащит камеру за выбранной планетой. Именно они делают эффект «я лечу за Сатурном».
Своего «контроллера» выбрали не из лени: так странице нужен один файл библиотеки вместо двух, а значит, меньше шансов, что при открытии что-то не докачается.
Как рождается стартовая орбита
Интересное место — planetSpec. Именно там планете выдаётся начальная скорость, и она берётся не «на глаз», а из формулы из третьего раздела:
Карта: «я хочу…» → «смотреть сюда»
| Хочу | Куда смотреть |
|---|---|
| …добавить планету или передвинуть орбиту | массив PLANETS (поле a) |
| …сделать планеты крупнее/мельче | поле size в PLANETS |
| …поменять силу тяжести | ползунок «Масса Солнца» или state.sunMass |
| …изменить точность и скорость счёта | BASE_DT, MAX_STEPS |
| …чтобы планеты не притягивали друг друга | в accelerations можно пропускать пары без Солнца |
| …поменять цвета, фон, свечение | glowTexture, starLayer, corona1/2 и CSS-переменные вверху файла |
| …убрать сжатие расстояний | COMPRESS = 1 (и быть готовым к пустоте в середине) |
Вы хотите, чтобы шарики планет стали крупнее на экране. Какое поле менять?
Теперь вы знаете, где что лежит, — и можно смело ломать Вселенную. Переходим к экспериментам.
Поэкспериментируй сам
Настоящее понимание появляется не тогда, когда прочитал, а когда предсказал — и ошибся. Ниже восемь опытов: сначала прочитайте, что именно делается, вслух предскажите результат, а потом раскройте подсказку и проверьте.
Опыт 1. Уменьшить массу Солнца до 0.3× (ползунок)
Что делаем: тянем ползунок «Масса Солнца» влево, до 0.30 ×.
Что произойдёт: почти все планеты сорвутся с круговых орбит и улетят по вытянутым эллипсам, часть — совсем. В правой панели у них появится период «не обращается — улетает».
Почему: скорости планет остались прежними, а нужная круговая скорость упала — она зависит от √M. Получился избыток скорости: там, где раньше был круг, теперь гипербола. Ровно тот же сюжет, что и с пушкой: слишком быстрое ядро уходит навсегда.
Опыт 2. Увеличить массу Солнца до 2.5× (ползунок)
Что делаем: тянем ползунок вправо.
Что произойдёт: орбиты сожмутся: планеты начнут то падать к Солнцу, то отскакивать назад — получатся очень вытянутые эллипсы. Меркурий и Венера при большом перевесе могут пересечь орбиты друг друга, а то и упасть на Солнце — тогда планета исчезнет.
Почему: тяготение выросло, а боковая скорость осталась прежней — её больше не хватает, чтобы «промахиваться». Численно новая большая полуось a′ = a/(2 − v²/GM′), то есть меньше прежней. Этот случай проверен автотестом: расхождение с теорией меньше 1%.
Опыт 3. Запустить своё тело (кнопка «+ Тело» или клавиша C)
Что делаем: нажимаем несколько раз. Каждое новое тело стартует по круговой орбите на случайном расстоянии, иногда в обратную сторону.
Что произойдёт: сначала — почти идеальная окружность. Потом след начнёт «гулять»: соседи тянут новенькую, и её орбита превращается в медленный узор. Тело, запущенное навстречу остальным, при сближении получает сильный пинок — иногда его выбрасывает из системы.
Почему: в модели честно считаются все пары тел, включая «планета — планета». Настоящая Солнечная система ведёт себя так же: именно по сбоям в движении Урана нашли Нептун.
Опыт 4. Разогнать Землю в 1.5 раза (одна строчка в коде)
Что делаем: в simulation.html ищем строку PLANETS.forEach((p, i) => addBody(planetSpec(p, i * GOLDEN))); и меняем её на:
Что произойдёт: Земля перестанет обращаться вокруг Солнца — уйдёт прочь по открытой кривой, а след нарисует красивую дугу, которая никогда не замкнётся. Остальные планеты останутся на местах.
Почему: 1.5 больше √2 ≈ 1.41 — второй космической для этой точки. Скорость превысила скорость убегания.
Опыт 5. Сделать шаг интегрирования грубым (BASE_DT)
Что делаем: находим const BASE_DT = 0.00025; и ставим 0.0025; — шаг крупнее в десять раз.
Что произойдёт: следы планет станут заметного «полигональными», а орбита Меркурия — самого быстрого — начнёт заметно дрейфовать и может превратиться в петляющую звезду.
Почему: шага в 22 дня Меркурию много: за это время он пролетает приличную дугу, а компьютер всё это время считает, что тяга была прежней. Хотите точности — поставьте 0.00005: считать станет медленнее, зато след снова станет гладким.
Опыт 6. Вернуть настоящие расстояния (COMPRESS)
Что делаем: const COMPRESS = 0.62; → const COMPRESS = 1;
Что произойдёт: внутренняя Солнечная система сожмётся в яркую точку у самого Солнца, а различимы останутся только гиганты. Придётся постоянно пользоваться колесом мыши.
Почему: это и есть настоящие пропорции. Модель была нарядной именно потому, что мы слегка соврали про расстояния — и это честная, осознанная ложь визуализации.
Опыт 7. Поселить два тела на одной орбите
Что делаем: скопируйте в PLANETS строчку Земли, переименуйте её в «Земля-2», оставив a: 1.000.
Что произойдёт: тела начнут тянуть друг друга: догоняющая тормозит и отстаёт, та, что впереди, ускоряется и уходит вперёд. Долго так не живёт — орбиты расходятся.
Почему: устойчиво это только в особых точках — когда тела разнесены примерно на 60° по орбите (точки Лагранжа L4 и L5). Так живут «троянцы» Юпитера: тысячи астероидов, которые делят с планетой одну орбиту и не падают на неё.
Опыт 8. Проверить сохранение энергии
Что делаем: ставим паузу, выбираем Землю, запоминаем скорость и расстояние. Прокрутим 20 лет, снова пауза, сравниваем: показания не должны уйти.
Что произойдёт: период обращения останется тем же с точностью до долей процента.
Почему: метод «кик-дрейф-кик» почти не добавляет и не теряет энергию — это его главное свойство. На нём держится жизнь таких моделей: их можно считать миллиарды лет, и они не разваливаются.
Правило простое: сначала предсказание, потом кнопка. Сказали вслух «сейчас будет так» — нажали. Совпало — знание закрепилось. Не совпало — прекрасно: теперь у вас есть настоящий вопрос, а он стоит дороже правильного ответа.
Что дальше
Вы уже знаете больше, чем кажется: понимаете, откуда берутся орбиты, зачем нужна скорость, как компьютер обманывает бесконечность маленькими шажками и где в файле лежит каждая ручка. Дальше — карта, куда расти.
Что у вас уже есть в голове
- Закон тяготения Ньютона и то, что масса падающего тела не важна.
- Круговая и вторая космическая скорость — и правило «три числа».
- Численное интегрирование: шаг, накопление ошибки, зачем нужен «кик-дрейф-кик».
- Умение читать чужую симуляцию: данные → физика → картинка → цикл.
- Вкус к экспериментам: предсказал → проверил.
Словарь, который откроет следующие двери
Эти слова встречаются в любой статье про орбиты. Зная их, вы перестанете спотыкаться о текст.
Эксцентриситет (e)
Насколько эллипс вытянут: 0 — идеальный круг, 0.9 — очень вытянутый. У Земли 0.017, у кометы Галлея 0.97.
Законы Кеплера
Три правила, которые Ньютон потом вывел из своего закона: эллипсы, «равные площади за равное время», T² ∝ a³.
Vis-viva
Формула-связка: скорость, расстояние и размер орбиты в одной строчке. Ею пользуются, чтобы быстро прикинуть «что будет, если разогнать».
Энергия орбиты
Отрицательная у тех, кто привязан, и равная нулю у тех, кто убегает. «Потенциальная яма» — лучший способ думать о тяготении.
Сфера Хилла
Область, где планета главная: внутри неё её спутники живут своей жизнью, снаружи командует Солнце.
Точки Лагранжа
Пять «карманов» между двумя телами, где можно зависнуть и лететь вместе с планетой. Там стоят обсерватории.
Гравитационный манёвр
Пролёт мимо планеты, который даёт аппарату скорость «в подарок», без грамма топлива. Так долетают до внешних планет.
Резонанс
Когда периоды обращения относятся как простые числа (2:1, 3:2) — и орбиты начинают «держать» друг друга.
Задача N тел и хаос
Почему орбиты нельзя предсказать на миллиард лет вперёд: малое различие в начале растёт экспоненциально.
Симплектические интеграторы
Семейство методов (включая наш «кик-дрейф-кик»), которые берегут энергию на длинных дистанциях.
Пост-ньютоновская поправка
Меркурий немного «прецессирует» — это заметила Общая теория относительности. Первая трещинка в ньютоновской картине.
Сфера влияния и сближения
Инструменты реальных расчётов полётов: где заканчивается Земля и начинается Марс в смысле тяготения.
Как усложнять этот же проект (по порядку сил)
- Эллиптические орбиты «как в настоящем». Вместо круговой скорости выдать планете скорость с учётом эксцентриситета (формула vis-viva делает это в одну строку).
- Спутники. Дайте Земле Луну — и посмотрите, удержит ли она её рядом с Солнцем (спойлер: да, если не запускать слишком далеко).
- Столкновения. Сейчас тела проходят друг сквозь друга. Добавьте проверку расстояния и сливайте их, сохраняя импульс — получится «теория гигантского столкновения» о рождении Луны.
- Кометы с хвостом. Хвост всегда смотрит от Солнца — отличная тренировка рисовать направление по вектору.
- Настоящее свечение. Постобработка (bloom) сделает Солнце по-настоящему ослепительным.
- Текстуры и освещённость. Картинки поверхностей плюс честная граница дня и ночи — и модель становится «космическим фото».
- Точная стартовая позиция из реальных данных — тогда модель можно сравнивать с настоящим положением планет.
- Релятивистская поправка — одна дополнительная строчка в ускорении, и перигелий Меркурия начнёт ползти так, как в природе.
Где играть и смотреть дальше
Universe Sandbox
Настоящая песочница: сталкивайте планеты, меняйте массу звёзд, смотрите на климат. Очень близко к тому, что вы уже умеете.
Kerbal Space Program
Лучший учебник орбитальной механики, какой придумали. После него формулы становятся очевидными.
«My Solar System» (PhET)
Крошечная браузерная n-body-песочница: четыре шарика и те же эффекты, что вы видели в нашей модели.
SpaceEngine
Прогулка по масштабной Вселенной — чтобы поймать ощущение настоящих расстояний.
3Blue1Brown
Визуальные объяснения векторов, производных и дифференциальных уравнений — ровно той математики, что стоит за симуляцией.
MIT OCW 8.01
Бесплатный полный курс механики. Первые лекции теперь будут читаться легко.
Математика, которая быстрее всего окупится
- Векторы — это просто «стрелка: куда и насколько». Вся наша физика написана векторами, и без них шага не сделать.
- Производная = «как быстро меняется». Скорость — производная позиции, ускорение — производная скорости. После этого формулы перестают быть заклинаниями.
- Интеграл = «сложить много маленьких» — это и есть то, что делает компьютер шажками.
- Законы сохранения (энергия, импульс, момент импульса) — самый дешёвый способ предсказать результат, не считая ничего.
- Дифференциальные уравнения — язык, на котором природа описывает «как меняется». Орбита — первое и самое красивое пример.
- Численные методы: Эйлера, Рунге–Кутты, симплектические схемы — и понимание, когда чему доверять.
Те же опыты полезно переделать на Python с numpy и matplotlib: там вы увидите то же самое в цифрах и графиках, зато без единого пикселя. А если захочется красоты — Three.js: вы уже знаете достаточно, чтобы читать его примеры.
Итоговая проверка. Что произойдёт с орбитой Земли, если Солнце в модели сделать вдвое тяжелее, а скорость Земли оставить прежней?
Всё, что вы прочитали, можно потрогать
Откройте симуляцию и пройдите по разделам сверху вниз: масса Солнца, «+ Тело», грубый шаг, клик по планете. Десять минут с мышью закрепят больше, чем ещё десять страниц.
🚀 Открыть симуляцию