IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

4 страниц V « < 2 3 4  
 Ответить  Открыть новую тему 
> Игра "Солнечная система"
сообщение
Сообщение #61


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Спасибо, IUnknown, с удовольствием читал )), +1.
Цитата(IUnknown @ 24.07.2011 17:42) *
чтоб не было необходимости в мониторе с диагональю около 30 а.е. smile.gif
А фактически, он у нас есть - один на всех, но зато с самым совершенным компьютером, какой только можно придумать smile.gif. Правда, программа в нем тоже только одна, и варировать условия слохновато.. ))

Цитата
Так вот, взаимодействие Солнца и планет отрабатывают на ура, все движется, да не по окружностям, а по эллиптическим орбитам. Красота... Вот, думаю, сейчас добавлю сюда комету, и посмотрю, как она будет двигаться. Так вот комете (при реальной же массе, которая на 16 порядков меньше массы Солнца - скажем, масса кометы Галлея = 2.2×1014 кг. против 2.0×1030 кг. солнечной массы) крышу сносит на первой же секунде, её солнце притягивает и выстреливает ей куда-то в неизвестном направлении как из пращи, со скоростью порядка 1000 км/сек smile.gif (при том, что реальная орбитальная скорость Меркурия, как самой быстрой планеты, не превышает 50 км/сек). Начинаю увеличивать массу кометы - все постепенно начинает приходить в норму, скорость выброса из системы уменьшается, а когда масса кометы становится соизмерима с массами планет - то комета переходит на гелиоцентрическую орбиту... Я явно что-то упускаю, а вот что - пока сообразить не могу...
Я все никак не выберу момент поглубже въехать в эту кухню (со временем туго, как никогда). Но могу ответить из общих соображений, что не вижу в этом ничего такого плохого. Вопрос - как ты решаешь диффур? Достаточная ли точность? Кометы (реальные) движутся по ооочень вытянутым эллипсам. При этом в момент близости к Солнцу точность обычных к-р схем резко падает. Там нужно сильно дробить шаг. Это первое. Второе - таки да, система _должна_ быть чувствительна к возмущениям. СОстояние, которое мы видим на небе кажется стабильным, но область его устойчивости на самом деле невелика. Поэтому (я уже писал раньше тоже) нужно крайне тщательно подходить к выбору начальных условий. Та схема, которая фигурирует в условии задачи, со случайным запусканием комет - хотя и выглядит вполне разумной, на самом деле таковой не является. Движение комет (реальных) отлажено за миллионы лет (в основном, посредством ЕО им. Дарвина)). И это "выстреливание" нужно делать с бооооооольшой оглядкой - то есть, варьировать начальные данные в очень небольшом диапазоне. Задача трех и более тел - жутко сложная штука. Область устойчивости в фазовом пространстве представляет собой, имхо, некий фрактал (может, не везде). Так что, то, что ты наблюдаешь, Володь, это вполне может быть проекцией реального положения дел, но через конечно-разностный фильтр еще.

Я бы не отказался от кратких инструкций по GLUTу - чтоб ускорить старт; это было бы в любом случае мне полезно. Самых кратких )). ПОтому что если самому, то мне сейчас проще все же под SDL. Но попробовать glut тоже хочется smile.gif.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #62


Гость






> Так вот комете (при реальной же массе, которая на 16 порядков меньше массы Солнца - скажем, масса кометы Галлея = 2.2×1014 кг. против 2.0×1030 кг. солнечной массы) крышу сносит на первой же секунде, её солнце притягивает и выстреливает ей куда-то в неизвестном направлении как из пращи, со скоростью порядка 1000 км/сек

Это дискретность времени так проявляется.
Вблизи Солнца, когда скорость большая, а гравитационное поле меняется очень резко, надо такт симуляции сделать соизмерымим с размером этой окрестности, делённой на эту скорость (то есть должен быть очень маленьким).
В реальной жизни такие же эффекты наблюдаются на микрообъектах (квантовые эффекты). То есть мы живём в Матрице.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #63


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
Я бы не отказался от кратких инструкций по GLUTу - чтоб ускорить старт;
GLUT - он тем и хорош, что не надо практически никаких инструкций, чтобы начать работать с ним. Ну, скажем, вот пример простой программы (используется обычная двумерная графика, то есть, рабочая область ничем не отличается от той, которая есть при использовании BGI) с комментариями... Мне в свое время было достаточно нескольких таких несложных программ, чтобы начать понимать, что происходит и писать простые примеры (а для поставленной ТС задачи ничего более сложного, чем 2D и не нужно).

Как-то вот так: (Показать/Скрыть)
Вся работа по отображению - в функции display(), между очисткой буфера и glutSwapBuffers(), или в подпрограммах/методах, что там у тебя используется для решения задачи, вызываемых из display(). Все вычисления - либо прямо в самой функции timer(), если их немного, или опять же, оттуда вызываются подпрограммы, производящие вычисления. С BGI на построение аналогичных программ под GLUT-ом перейти можно за один день.

Да, еще... Надо подключить к проекту библиотеки: glut32.lib, libglu32.a и libopengl32.a, иначе линкер будет бить тревогу...

Цитата
Вблизи Солнца, когда скорость большая, а гравитационное поле меняется очень резко, надо такт симуляции сделать соизмерымим с размером этой окрестности, делённой на эту скорость (то есть должен быть очень маленьким).
Да, похоже, мне этого и не хватало... Попробовал уменьшить вообще такт симуляции для кометы - становится более приемлемо. Попробую потом уменьшать именно при приближении к Солнцу. Когда время будет, что-то сразу так все навалилось... sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #64


Бывалый
***

Группа: Пользователи
Сообщений: 212
Пол: Мужской

Репутация: -  0  +


Извиняюсь что молчал, работал во вторую смену и проблемы на работе. На этой неделе продолжу заниматься программой.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

4 страниц V « < 2 3 4
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.05.2024 12:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name