Skip to content

ivanabbakumov/Solar-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solar-System

Симуляция закона всемирного тяготения

solarSystem

🌌 Планетарный симулятор

Интерактивная физическая симуляция гравитационного взаимодействия между Солнцем и планетами, написанная на p5.js. Позволяет пользователю вручную создавать планеты, задавая их массу и начальную скорость, и наблюдать за развитием орбит.


🚀 Основные возможности

  • Ручное создание планет
    Кликните и потяните мышью, чтобы задать начальное положение и направление скорости планеты. Длина и направление вектора определяют начальную скорость и направление вращения.

  • Настройка параметров

    • Ползунок массы планеты (5–50 единиц)
    • Ползунок лимита времени симуляции (15–180 секунд)
    • Максимум 8 планет одновременно
  • Физика движения

    • Сила притяжения:
      F = G \frac{m_1 m_2}{r^2}

    • Ускорение планеты (масса сокращается):
      a = G \frac{M_{\text{Солнца}}}{r^2}

    • Ограничение максимальной скорости (MAX_SPEED = 6) для стабильности симуляции

    • Численное интегрирование методом Эйлера с шагом dt = 1

  • Оценка стабильности орбит
    Планета считается стабильной, если:

    • Прожила > 4 секунд (aliveTime > 240 кадров при 60 FPS)
    • Находится на расстоянии < 500 пикселей от Солнца (не улетела в бесконечность)
  • Финальный экран результатов
    После окончания времени или исчезновения всех планет отображается:

    • Причина завершения («Время вышло!» / «Все планеты исчезли»)
    • Количество стабильных орбит
  • Управление

    • Кнопка START — запуск симуляции
    • Клавиша R (или К) — перезапуск с очисткой планет

🎨 Визуальные элементы

  • Фон: тёмное космическое пространство со звёздами
  • Солнце: жёлтый круг в центре
  • Планеты: цвет зависит от массы (от голубого до красного по шкале HSL)
  • Стабильные планеты: подсвечиваются зелёным контуром
  • Вектор начальной скорости: белая линия при перетаскивании

⚙️ Настройки (константы)

Параметр Значение Описание
G 0.0006 Гравитационная постоянная
dt 1 Шаг интегрирования (в кадрах)
MAX_SPEED 6 Макс. скорость планеты (пикс/кадр)
sun.mass 12000 Масса Солнца
sun.r 40 Радиус Солнца (пиксели)

💡 Возможные улучшения

  • Визуализация столкновения планет
  • Настройка параметров звезды
  • Настройка протекания визуализации
  • Отображение траекторий планет

About

Симуляция закона всемирного тяготения

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published