№10 «Галактический симулятор»

Мастер:  Мартынов Богдан Алексеевич

Вы когда-нибудь задумывались, почему Луна не падает на Землю, а планеты не улетают от Солнца в космос? Что если бы вы могли сами создать свою Солнечную систему — запустить планеты по орбитам, столкнуть их или наблюдать, как рождаются галактики? В нашей мастерской мы это сделаем!

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

В рамках мастерской мы создадим 2D-симулятор космоса. Начнём мы с простого: научимся рисовать объекты на экране, задавать им массу, скорость и координаты. Затем добавим гравитационное взаимодействие по закону Ньютона и увидим, как хаотичное движение превращается в упорядоченные орбиты. А если останется время, добавим столкновения, следы траекторий и возможность создавать новые объекты прямо во время симуляции. Также при быстром темпе работы рассмотрим проблемы и возможности оптимизации (ускорения) нашей симуляции.

Мы будем программировать на Python с использованием библиотеки Pygame. Это мощный, понятный и удобный инструмент, который позволит нам сосредоточиться конкретно на физике, а не на сложностях с графикой. Для оптимизаций используем NumPy.

Этот проект для тех, кто не боится математики, хочет увидеть, как формулы оживают на экране, и мечтает почувствовать себя творцом космических систем. В результате работы в мастерской получим работающий симулятор, который можно показать друзьям и продолжить развивать самостоятельно.

Требования к участникам: Желание разобраться в физике и математике (формула гравитации, векторы); главное — любопытство, готовность экспериментировать и работа в команде!

Осваиваемые технологии и языки: Python (изучим с основ), Pygame, объектно-ориентированное программирование (ООП, классы), математические вычисления, событийно-ориентированное программирование, NumPy (если успеем).

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *