![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Account |
![]()
Сообщение
#1
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 212 Пол: Мужской Репутация: ![]() ![]() ![]() |
Это не совсем игра, но так написано в моем задании.
Вот что мне надо постараться создать: Моделируется движение планет в солнечной системе и прохождение комет через нее. В упрощенной модели не следует соблюдать реальные пропорции размеров планет, Солнца и расстояний между ними. В данной модели все планеты движутся вокруг Солнца в одной плоскости но с разной скоростью. У планет, Солнца и комет есть определенные размеры и масса, пропорциональная кубу линейного размера. В одном из углов "Солнечной системы" в случайные моменты времени генерируются кометы, летящие в произвольном направлении. Комета и планета престают существовать при столкновении. При столкновении кометы о Солнцем исчезает только комета. На кометы действуют силы притяжения планет и Солнца в соответствии с законом всемирного тяготения, что изменяет их траекторию. Комета вышедшая за пределы "Солнечной системы* исчезает на всегда. У комет есть хвост, направленный в сторону от Солнца, Управление моделью : при помощи клавиш: начать, закончить. Итак, делаться будет на с++, с помощью псевдографики как в этой теме. Как изначально представляю себе это. Будет базовый класс фигура, который будет иметь такие показатели. как радиус планеты, масса, сила притяжения, радиус орбиты. Каждая планета наследник от этого класса. Не понял вот этого в задании Цитата масса, пропорциональная кубу линейного размера Так же пока не представляю как в случайном какого-либо конца экрана запустить комету в каком то направлении, рисовать ей хвост(какми способом) от солнца, ну и физику притяжения с изменением траектории.Как наверстаю начальный код по планетам выложу, далее нужна будет конечно помощь. Заранее благодарю всех кто откликнется, за советы и помощь. Сообщение отредактировано: Account - 17.07.2011 17:53 |
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата но в рассматриваемом случае (супермассивная звезда, массивные планеты, легкие кометы) мы просто знаем (глядя на небо)), что порядок возможен Да, да... Теоретически - так оно и есть. Как только дело доходит до практики... Попробовал я реализовать то же самое с использованием сил гравитации. Вот так и есть, реальная орбитальная скорость, реальная масса Солнца и планет, реальное расстояние между планетами и Солнцем + масштабирование, чтоб не было необходимости в мониторе с диагональю около 30 а.е. ![]() ![]() Так вот, взаимодействие Солнца и планет отрабатывают на ура, все движется, да не по окружностям, а по эллиптическим орбитам. Красота... Вот, думаю, сейчас добавлю сюда комету, и посмотрю, как она будет двигаться. Так вот комете (при реальной же массе, которая на 16 порядков меньше массы Солнца - скажем, масса кометы Галлея = 2.2×1014 кг. против 2.0×1030 кг. солнечной массы) крышу сносит на первой же секунде, её солнце притягивает и выстреливает ей куда-то в неизвестном направлении как из пращи, со скоростью порядка 1000 км/сек ![]() |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Спасибо, IUnknown, с удовольствием читал )), +1.
чтоб не было необходимости в мониторе с диагональю около 30 а.е. А фактически, он у нас есть - один на всех, но зато с самым совершенным компьютером, какой только можно придумать ![]() ![]() Цитата Так вот, взаимодействие Солнца и планет отрабатывают на ура, все движется, да не по окружностям, а по эллиптическим орбитам. Красота... Вот, думаю, сейчас добавлю сюда комету, и посмотрю, как она будет двигаться. Так вот комете (при реальной же массе, которая на 16 порядков меньше массы Солнца - скажем, масса кометы Галлея = 2.2×1014 кг. против 2.0×1030 кг. солнечной массы) крышу сносит на первой же секунде, её солнце притягивает и выстреливает ей куда-то в неизвестном направлении как из пращи, со скоростью порядка 1000 км/сек Я все никак не выберу момент поглубже въехать в эту кухню (со временем туго, как никогда). Но могу ответить из общих соображений, что не вижу в этом ничего такого плохого. Вопрос - как ты решаешь диффур? Достаточная ли точность? Кометы (реальные) движутся по ооочень вытянутым эллипсам. При этом в момент близости к Солнцу точность обычных к-р схем резко падает. Там нужно сильно дробить шаг. Это первое. Второе - таки да, система _должна_ быть чувствительна к возмущениям. СОстояние, которое мы видим на небе кажется стабильным, но область его устойчивости на самом деле невелика. Поэтому (я уже писал раньше тоже) нужно крайне тщательно подходить к выбору начальных условий. Та схема, которая фигурирует в условии задачи, со случайным запусканием комет - хотя и выглядит вполне разумной, на самом деле таковой не является. Движение комет (реальных) отлажено за миллионы лет (в основном, посредством ЕО им. Дарвина)). И это "выстреливание" нужно делать с бооооооольшой оглядкой - то есть, варьировать начальные данные в очень небольшом диапазоне. Задача трех и более тел - жутко сложная штука. Область устойчивости в фазовом пространстве представляет собой, имхо, некий фрактал (может, не везде). Так что, то, что ты наблюдаешь, Володь, это вполне может быть проекцией реального положения дел, но через конечно-разностный фильтр еще.![]() Я бы не отказался от кратких инструкций по GLUTу - чтоб ускорить старт; это было бы в любом случае мне полезно. Самых кратких )). ПОтому что если самому, то мне сейчас проще все же под SDL. Но попробовать glut тоже хочется ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 8:44 |