Final exam version

This commit is contained in:
2026-06-26 10:40:09 +03:00
commit 3e593aea3e
5224 changed files with 535773 additions and 0 deletions

49
README.md Normal file
View File

@@ -0,0 +1,49 @@
# Solar System — Ticket 3
Программа моделирует солнечную систему по билету №3.
## Реализовано
- 2 звезды.
- У первой звезды 11 планет.
- У второй звезды 12 планет.
- У первой звезды по 1 планете на каждой орбите.
- У второй звезды по 2 планеты на каждой орбите.
- Чётные орбиты вращаются против часовой стрелки.
- Нечётные орбиты вращаются по часовой стрелке.
- Каждая орбита пересекается хотя бы с одной орбитой другой звезды.
- Планеты не пересекаются на экране.
- Орбиты можно включать и выключать.
- Состояние можно сохранить в `solar_state.txt`.
## Управление
- `SPACE` — пауза.
- `O` — включить/выключить орбиты.
- `S` — сохранить состояние.
- `ESC` — выход.
## Сборка Linux
```bash
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, после чего координаты пересчитываются по окружности. Расстояние между звездами подобрано так, чтобы каждая орбита имела пересечение хотя бы с одной орбитой другой звезды, но орбиты не проходят через центры звезд.
В этой версии планеты не взаимодействуют друг с другом и не меняют траектории: движение идёт строго по орбитам. Начальные углы и размер планет подобраны так, чтобы планеты визуально не пересекались при демонстрации.
Дополнение: скорость движения увеличена; ближние планеты вращаются быстрее дальних. Начальные углы разведены, планеты не стартуют из одной точки и не влияют друг на друга.
Обновление: начальные углы планет подобраны заранее, чтобы при запуске планеты не пересекались. Планеты двигаются только по своим орбитам и не влияют друг на друга.