ФТК СЮТ

Universe sandbox 3 или вращающиеся сферы

26.04.2020Симаков Михаил3 просмотров

Всем привет! ? Уже некоторое время, а именно целую неделю (!), я осваиваю Unity. Это довольно удобная среда для разработки приложений и игр в 3D и не только.

После бесчисленных попыток сделать различные проекты, я решил сделать симулятор космоса наподобие University Sandbox.

 

Сначала был хаос (и математика)

Давайте же начнём создание с небольшого количества математики. Самая главная формула здесь - это формула всемирного закона тяготения. F = (G * m1 * m2) / r^2 (над F, по идее, стоит стрелочка, так как это векторная величина), где G - это константа (она очень маленькая), m1 и m2 - это масса первого и второго тела, а r^2 - это расстояние между этими телами во второй степени.

Закон всемирного тяготения

Затем, когда мы нашли силу, возникающую между 2 телами нам нужно найти ускорение. Здесь нам опять поможет И. Ньютон, который выяснил, что F = m * a (m - масса, a - ускорение. Над F опять стрелочка, наверно), а значит a = F / m. Итак, теперь самое сложное. Получившееся ускорение необходимо разложить на оси.

Разложение вектора на оси

Здесь нам поможет подобие треугольников. Давайте для простоты рассмотрим 2-х мерное, а не 3-х мерное пространство. Если мы проведём 2 прямоугольных треугольника. В обоих катеты будут параллельны осям. В первом гипотенуза - это отрезок от 1 тела до 2, а во втором это вектор ускорения (или как-то так). Так вот, эти 2 треугольника будут подобны по 2 углам(!). Значит, мы легко можем разложить вектор ускорения на оси.

Немного математики

Итак, таким образом мы рассчитали ускорение для одного из тел. Таким образом мы рассчитываем ускорение для каждого из тел относительно каждого из тел. Затем конечное ускорение мы прибавляем к скорости, а скорость прибавляем к положению нашей планеты.

В конце концов у меня получилось что-то такое.

Программа          Космос в программе Unity

 

Как-то здесь пустовато!

Как вы заметили на второй картинке, как-то здесь пустовато (не считая тех звёзд, которые на фоне). Давайте что-то добавим!

Солнышко

Интересный факт: если Google Translator работает правильно, то поверхность этого солнца на самом деле не светится, а просто игнорирует свет вокруг себя.

Зададим нашему солнцу довольно большую массу по сравнению с планетами. Теперь, добавим немного планет.

Земля

Где-то на этом голубом шарике мы ходили в виртуальный поход. Итак, давайте всё расположим и....

Земля вращается вокруг Солнца

Планета так ступенчато движется, так как это gif. Итак, как мы видим, всё работает. Давайте сделаем что-нибудь интересное.

 

Что-то интересное

Итак, давайте сделаем в нашем мире, полном спокойствия, угрозу уровня Брюса Уиллиса.

Страшный астероид

Это птица? Это самолёт? Нет, это ужасающий астероид летящий на землю. Давайте посмотрим, сможет ли кто-то спасти Землю.

Земля была спасена!

Ура, на этот раз Земля была спасена!

Спасибо, если дочитали всё это. Пишите, что можно ещё добавить или попробовать сделать, ну и почаще заходите на этот сайт. ?

 

Комментарии

Загружаем…

Войдите, чтобы оставить комментарий.

← Ко всем статьям