Skip to content

huksleva/SolarSystemPyTurtle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Симуляция Солнечной системы

Этот проект представляет собой визуализацию движения планет Солнечной системы с использованием библиотеки turtle в Python. Он состоит из трёх файлов: SolarSystem.py, Methods.py и Constants.py.


📁 Файлы проекта

1. Constants.py

Содержит все необходимые константы для симуляции:

  • Данные о планетах: массы, радиусы, расстояния от Солнца, цвета и др.
  • Множители масштаба для корректного отображения на экране.

2. Methods.py

В файле Methods.py содержаться такие методы как;

  • UpdatePlanetPos - обновляет позицию планеты
  • UpdateLabelPosition - обновляет позицию подписи
  • DrawOrbits - рисует орбиты
  • ClearOrbits - очищает орбиты

И такие функции как:

  • MonitorResolution - возвращает разрешение монитора
  • MonitorFrameRaten - возвращает частоту обновления монитора

3. SolarSystem.py

Основной файл запуска программы:

  • Настройка окна turtle
  • Создание объектов планет
  • Реализация логики анимации и управления
  • Отображение времени и состояния симуляции

Структура проекта

.
├── img.png
├── stars.png
├── README.md
├── Constants.py
├── Methods.py
└── SolarSystem.py

img.png

▶️ Как запустить проект

Требования

  • Python 3.x
  • Библиотеки:
    • pywin32 (для получения параметров монитора)
    • turtle (встроена в стандартную поставку Python)
    • datetime (встроена в стандартную поставку Python)
  • Файл stars.png должен находиться в той же директории, что и SolarSystem.py (фоновое изображение)

Установка зависимостей

Если у вас не установлен pywin32, выполните:

pip install pywin32

Запуск программы

В терминале или командной строке перейдите в директорию проекта и выполните:

python SolarSystem.py

⌨️ Управление

Клавиша Действие
(вверх) Увеличить скорость симуляции
(вниз) Уменьшить скорость симуляции
Пробел Пауза / Возобновление
R Перезапуск симуляции
O Показать / скрыть орбиты планет

🧪 Особенности реализации

  • Все данные взяты из достоверных источников (например, NASA).
  • Используется реальная физическая модель движения планет (равномерное движение по окружности).
  • Масштабирование применяется для корректного отображения на экране.
  • Поддерживается работа с разными разрешениями экрана и частотами кадров.
  • Время внутри симуляции может ускоряться/замедляться.

🌞 Что вы увидите

Откроется полноэкранное окно с черным фоном и звездами. Посреди него будет желтое Солнце, вокруг которого начнут двигаться планеты по своим орбитам. В левом верхнем углу отображается текущее время симуляции и статус (пауза/скорость). Цвета и размеры планет приблизительно соответствуют их реальным характеристикам.


🛠️ Возможные доработки

  • Добавить спутники (например, Луну)
  • Добавить возможность увеличения/уменьшения масштаба во время симуляции
  • Включить звуковые эффекты или музыку
  • Сохранять сцену в виде файла изображения или видео

🙏 Авторство и благодарности

  • Константы и данные о планетах взяты с сайта NASA
  • Гравитационная постоянная — из статьи журнала Nature
  • Реализация на Python с использованием turtle — полностью авторская

Если у вас возникнут вопросы или ошибки при запуске, убедитесь, что все файлы находятся в одной директории и зависимости установлены.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages