Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

гравитация и её последствия [Delphi, Windows]


Страницы:   1 2 3 4 5 6 7 8

TButton ©   (2006-05-26 17:57:00) 

свершилось! =)
я собрал мысли в кучу и вдохновлённый передачей про зарождение солнечной системы в целом и земли в частности
написал систему взаимогравитирующих частиц
прикрутил это к движку на qPixels
(2Д, говорите, не модно)
и получилось собственно вот это

http://slil.ru/22783716

очень долго мучался с настройкой мировых констант
но вроде бы что-то получилось


Думкин   (2006-06-02 08:04:00) [101]

Вполне моет оказаться, что центр масс движется в полном соответствии с начальным импульсом. Можно проверить. Тогда неплохо бы добавить и вывод текущих координат центра масс.


Думкин   (2006-06-02 08:01:00) [102]

> Cash ©

Если вы обидитесь, то зря. :) Извините, если резко получилось.


Думкин   (2006-06-02 07:58:00) [103]

> Cash ©   (02.06.06 07:29) [38]

Извините, но вы видимо абсолютно не в ладах со школьной механикой. Кинетическая энергия - она нулю может быть равно только при одном условии - скорости всех частиц равны 0.
Все-таки про импульс речь видимо. Если система замкнута, а эта система таки замкнута и сумма внешних сил равна 0, то центр масс остается на месте и именно сумарный импульс остается прежним. Если начальный импульс системы 0, то и в последующем он должен оставаться таковым.
Исходников не видел и т.п. Но было бы интересно посмотреть в начальный момент - как в импульс системы. вполне возможно, он не нулевой, потому и смещение. Либо погрешности в модели и обсчетах.
Если же про энергию, то сохраняется суммарная - кинетическая и потенциальная.

> TButton ©   (02.06.06 07:47) [39]

Было бы неплохо выводить информацию об импульсах по координатам совокупный и также по 2-м эенергиям и их сумму. И вывести начальные значения, а потом сравнивать с текущими. Как писал выше - импульс не должен меняться, равно как и сумма энергий - дополнительная проверка.

Затем сделать так(в начальный момент) - если начальная система обладает ненулевым импульсом и центр масс не в центре, вводить частицу, которая бы компенсировала этот дефект как по импульсу, так и по центру масс.


Cash   (2006-06-02 07:55:00) [104]


> ведь даже самая маленькая планета несоизмеримо больше космического
> корабля


А это кто сказал??? 8)
В Hegemonia только истребки и планетарные колонизаторы меньше планет,
орбитальные станции почти с пол планеты, а БШ, линкоры и т. д, они
соизмеримы вроде были.

Но сначала надо еще больше оптимизировать эту систему, чтобы у нее
трудоемикость не была квадратической. (в модуле из [33] она такая, а в
других - порядок больше)


TButton   (2006-06-02 07:47:00) [105]


> этого ждать придется около часа или поболее.
> Система в кондицию должна прийти. :)

на начальных этапах можно выставить дискретизацию 50мкс
это позволит быстро пройти этап формирования протопланет
позже можно выставить дискретизацию ~5 (по умолчанию - 3.3) мкс
просто при больших промежутках между обсчётом может произойти банальное проскакивание одной частицы сквозь другую
в другой ситуации это решилось бы трассированием, но здесь это не приемлимо =)

ПыСы
возникла мысль, что на базе всего этого мог бы получиться неплохая Space Arcade. единственная проблема - визуализация, ведь даже самая маленькая планета несоизмеримо больше космического корабля =)


Cash   (2006-06-02 07:29:00) [106]

Думкин ©   (02.06.06 05:48) [34]..[36]:
Товарищ, но ведь и галактики не стоят на месте, хоть их суммарная
кинетическая энергия равна 0. Равновесие энергии есть, но нет равновесия
по массе, всегда в каком либо краю суммарная масса будет больше или
меньше по сравнению с противоположным краем. Поэтому система и едет.
Просто притяжение одной половины галактики больше, а другой меньше и
область с большей гравитацией проходит меньший путь к центру системы
тем самым смещая его.

Спутники на планетах там тоже образуются. Когда планета набирает
достаточный вес и уходит достаточно далеко от центра системы, и при этом
к ней по приемлемой траектории приближается маленькая планета, масса
и скорость которой удовлетворяет условиям, то этот маленький метеор
заходит на орбиту планеты и становится луною. Зрелище неописуемо,
только в системе из [33] этого ждать придется около часа или поболее.
Система в кондицию должна прийти. :)


TButton   (2006-06-02 07:27:00) [107]


> ? Возможно импульс имелся в виду? Расшатывать из-за погрешностей
> модели?

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

погрешности модели допустимы лишь относительно визуализации
относительно физики могут присутствовать лишь погрешности законов физики =)
(возможность создания вечного двигателя доказана теоретически)


> А если ввести еще обработку соударений? И в ряде случаев,
>  чтобы частицы слипались? Появятся планеты со спутниками?

вот именно над спутниками второго порядка я и бьюсь с самого начала
на следующей неделе планирую взяться за очередной релиз
(сейчас немного другим занят)
в порядке эксперемента попробую в ручную создать модель солнечной системы, воспроизведя в ней в некотром масштабе все расстояния и массы (ну и коэффициент гравитации)

мысль о соударениях частиц без слипания безусловно интересна
т.е. столкновение с образованием осколков
но она требует введения физических характеристик частиц
(частицы газа и частицы твёрдого вещества при коллизии ведут себя по-разному)
а сие есть... введение дополнительных сложностей


Думкин   (2006-06-02 05:57:00) [108]

Хотя поглощение происходит. Будем посмотреть.


Думкин   (2006-06-02 05:50:00) [109]

А если ввести еще обработку соударений? И в ряде случаев, чтобы частицы слипались? Появятся планеты со спутниками?


Думкин   (2006-06-02 05:48:00) [110]

> TButton ©   (29.05.06 12:56) [20]
> 2 Cash
> про уезжание системы
> не смотря на то, что все законы физики соблюдается
> и сумарная кинетическая энергия системы всегда равна нулю
> система склонна расшатывать сама себя
> поэтому центр масс описывает замысловатые фигуры вокруг
> нулевой точки

? Возможно импульс имелся в виду? Расшатывать из-за погрешностей модели?


Cash   (2006-06-01 19:52:00) [111]

Вон, если еще кому интересно, поправил маленько код (блин сессия скоро,
а мне делать нечего! :))) ), да и в общем поставил его как скринсейвер,
только без фич с настройкой и пред-просмотром.
http://webfile.ru/973571- бинарник, к нему D3DX81ab.dll нодо.
http://webfile.ru/973582- модуль с правленным классом.

У меня эта вещь на 128 точках 400++ FPS дает, а на 360 - ~40 FPS.


Cash   (2006-05-30 14:52:00) [112]

Тормознее??? А у меня быстрее было. Ну да и эту вещь я тоже правил.
Сегодня в универ сносил, там компы древние. Новенькая прожка, которую
утром сбилдил, дала в универе на 128~250 звездах 6 кадров всекунду.
А там система, 800MHz/S3 8Mb Video/128 Mb RAM. Такой FPS меня удивил
даже.

Я все операции в один цикл загнал, стало работать быстрее. А тормоза
могут проявляться и от прорисовки. Там 6 точек на звезду, и каждая точка
предворительно подготавливается. На твоем пиксельном двиге это будет
быстрее.

А чего такого с центральной звездой? И в чем тормознутость сплэшей?
(сразу скажу, сплэш за звездой не идет, он возникает в месте
соприкосновения двух звезд)


TButton   (2006-05-30 09:45:00) [113]

видел новый.
центральная частица либо рисуется как-то не так, либо не учавствует в коллизии
и в целом стало тормознее...
да и сплэши они как-то иногда отстают =)
(в смысле отстают сильно)


Cash   (2006-05-30 06:38:00) [114]

TButton ©   (30.05.06 00:34) [28]:
> в предыдущем релизе всё равботает, только что-то у тебя
> с коллизией не так


Да, я это профиксил уже, в [27] лежит нормальная вещь! Ты ее скачай,
закачаешься! :))) Я там добавил splash небольшой при коллизии одной
звезды с другой. Кстати, массу я визуализировать придумал с помощью
цвета, звезды раскрашены от желтого через зеленый к aqua цвету.
Мне так покрайней мере понравилось.


TButton   (2006-05-30 00:48:00) [115]

к следующему релизу:
* сохранение/загрузка пресетов для инициализации
* сохранение/загрузка состояния системы частиц
* более детальная информация по выделеной частице
* panning вселенной (возможно)
* выделение частицы кликом (возможно)


TButton   (2006-05-30 00:34:00) [116]


> по моему было бы интереснее, если бы небыло точного центра,
>  а было бы скопление звёзд.
> и чтобы эта система развивалась.
> или чтобы центр был, но если какая-то звезда станет больше
> него, то он может быть поглащён =) ( вот это было бы действительно
> прикольно =) )

так кто ж тебе не даёт эксперементироватьс настройками)


> Я тут поколдовал трохи. Бубен хороший взял, потряс над модулем
> перед
> костром предков, и... в общем там:
> http://webfile.ru/968300- бинарник
> http://webfile.ru/968315- сам модуль с пояснениями внутри.
>
>
> :)))
> Частицы..., аж самому понравились! :)))

пытался скачать - не удалось
в предыдущем релизе всё равботает, только что-то у тебя с коллизией не так

кстати,
2 XProger
тестировал коллизию...
понял что в принципе, она сильно на скорость не влияет
на скорость сильно влияет CalcVectors
вот это вот и надо оптимизировать больше всего

думаю, что же там можно сделать.


Cash   (2006-05-29 20:18:00) [117]

TButton ©   (29.05.06 17:10) [24]:
Нада UI с красивой отдачей? Сделал, на мой взгляд, давольно красиво.
Бинарник без D3DX81ab.dll лежит по адресу: http://webfile.ru/968713
сама библиотека на: http://webfile.ru/968725
а исходник (нужен Omega 93 GDK пакет) там: http://webfile.ru/968716
Система построена на моем классе с твоей начинкой (я даже код не
менял) :).


Soughai   (2006-05-29 19:38:00) [118]

по моему было бы интереснее, если бы небыло точного центра, а было бы скопление звёзд.
и чтобы эта система развивалась.
или чтобы центр был, но если какая-то звезда станет больше него, то он может быть поглащён =) ( вот это было бы действительно прикольно =) )


Cash   (2006-05-29 17:24:00) [119]

Где то через 2 минуты наступает абскурация мира. Этакий судный день! :)))
И в результате из 1000 звезд остается только 110-120. Зрелище красивое,
еще бы к этому анимацию прикрутить, это было бы красиво. :)


TButton   (2006-05-29 17:10:00) [120]

http://slil.ru/22791706
обнова интерхвейса
всё что есть внутри задаётся снаружи
(Дискретизация в микросекундах)


Страницы:   1 2 3 4 5 6 7 8

Наверх

Титульная страница Поиск, карта сайта Написать письмо