50 lines
3.0 KiB
Markdown
50 lines
3.0 KiB
Markdown
# 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, после чего координаты пересчитываются по окружности. Расстояние между звездами подобрано так, чтобы каждая орбита имела пересечение хотя бы с одной орбитой другой звезды, но орбиты не проходят через центры звезд.
|
||
|
||
|
||
В этой версии планеты не взаимодействуют друг с другом и не меняют траектории: движение идёт строго по орбитам. Начальные углы и размер планет подобраны так, чтобы планеты визуально не пересекались при демонстрации.
|
||
|
||
|
||
Дополнение: скорость движения увеличена; ближние планеты вращаются быстрее дальних. Начальные углы разведены, планеты не стартуют из одной точки и не влияют друг на друга.
|
||
|
||
|
||
Обновление: начальные углы планет подобраны заранее, чтобы при запуске планеты не пересекались. Планеты двигаются только по своим орбитам и не влияют друг на друга.
|