2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00
2026-06-26 10:40:09 +03:00

Solar System — Ticket 3

Программа моделирует солнечную систему по билету №3.

Реализовано

  • 2 звезды.
  • У первой звезды 11 планет.
  • У второй звезды 12 планет.
  • У первой звезды по 1 планете на каждой орбите.
  • У второй звезды по 2 планеты на каждой орбите.
  • Чётные орбиты вращаются против часовой стрелки.
  • Нечётные орбиты вращаются по часовой стрелке.
  • Каждая орбита пересекается хотя бы с одной орбитой другой звезды.
  • Планеты не пересекаются на экране.
  • Орбиты можно включать и выключать.
  • Состояние можно сохранить в solar_state.txt.

Управление

  • SPACE — пауза.
  • O — включить/выключить орбиты.
  • S — сохранить состояние.
  • ESC — выход.

Сборка Linux

python3 -m venv venv
source venv/bin/activate
pip install pygame pyinstaller
pyinstaller --onefile --windowed --name SolarSystem main.py
cp dist/SolarSystem .
chmod +x SolarSystem

Исправление орбит

В этой версии планеты не отталкиваются и не влияют друг на друга. Движение строго орбитальное: угол меняется на angular_speed * direction, после чего координаты пересчитываются по окружности. Расстояние между звездами подобрано так, чтобы каждая орбита имела пересечение хотя бы с одной орбитой другой звезды, но орбиты не проходят через центры звезд.

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

Дополнение: скорость движения увеличена; ближние планеты вращаются быстрее дальних. Начальные углы разведены, планеты не стартуют из одной точки и не влияют друг на друга.

Обновление: начальные углы планет подобраны заранее, чтобы при запуске планеты не пересекались. Планеты двигаются только по своим орбитам и не влияют друг на друга.

Description
No description provided
Readme 54 MiB
Languages
Python 78.9%
HTML 17.7%
C 1.9%
TeX 0.6%
JavaScript 0.6%
Other 0.2%