![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 04.05.2008
Сообщений: 4
|
![]()
Здравствуйте. У меня есть задача написать программу моделирующую броуновское движение. В принципе все готово, но есть несколько вопросов:
1) Мне не очень нравится как происходит столкновения о границы области вывода частиц (т.е. некоторые частицы вылезают за границу). Есть-ли у кого-нибудь идеи как этого избежать? 2) В моей задаче нужно сделать посередине области вывода перегородку с щелью (через нее частицы могут пролетать из левой половины в правую). Так вот если скорость частицы слишком большая, то она пролетает сквозь эту перегородку. Происходит это потому, движение сделано у меня по таймеру, я проверяю положение частицы каждую тысячную секунды, НО! если скорость частицы велика, то может так получиться, что в один момент она еще не долетела до перегородки, а в другой уже перелетела ее и столкновение не регестрируется. Тоже не могу придумать как бы от этого избавиться. 3) еще думаю как бы по-аккуратнее сделать чтобы за частицей оставался пунктирный след от ее траектории 4)также мне надо было сделать, чтобы частицы сталкивались друг с другом. Это я замутил, но наблюдается такой же эфект как при столкновении с границами области, только тут некоторые частицы как бы слипаются. Происходит это потому что при столкновении частицы обмениваются скоростями, но в следующий момент не успевают разлететься и получается что опять происходит обмен скоростями и сближение и так до бесконечности. Жду интересных идей и предложений! ![]() P.S. Исходник прекреплять не буду пока (он достаточно большой и сложноват будет для понимания), думаю что и так все подробно описал, но если кому-то понадобится позже выложу. |
![]() |
![]() |
![]() |
#2 |
Форумчанин Подтвердите свой е-майл
Регистрация: 22.01.2008
Сообщений: 161
|
![]()
1) а как вы делаете? Просто проверки на совпадении координаты частицы с границей не хватает?
2)А уменьшить интервал Timer'a? 3) создавайте массив, лучше динамический, с координатами центра частиц и прорисовывайте его в событии таймера |
![]() |
![]() |
![]() |
#3 |
Регистрация: 04.05.2008
Сообщений: 4
|
![]()
-=<[Evklidd]>=- так и делаю, проверяю координаты на совпадение. уменьшать интервал таймера некуда и так =1. По третьему пункту тоже думал про массив
![]() |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
2ExoByte рассуждения по теме
|
![]() |
![]() |
![]() |
#5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 04.05.2008
Сообщений: 4
|
![]()
спасибо alexBalck, я собственно примерно так и делал. Stilet c Open GL не работал, посмотрим.
Короче исправил все косяки, кроме пункта (2). Молекулы пролетают "сквозь" перегородку, если скорость очень большая. |
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Мне недавно попалась оченб неплохая книжка на эту тему, называется "Real-Time Collision Detection", автор Christer Ericson, там, собственно, на вполне приемлимом математическом уровне, разбираются все эти проблемы, включая "туннельный эффект" - "пролет через стену". Собственно таких книг достаточно много. Целиком пока не читал, только пробежался глазами, но вроде бы там эта проблема решается вполне логичным образом - на основе предсказания будущих положений объекта. Тем более, если уравнение движения линейно, задача решается с помощью простенького матаппарата...
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 04.05.2008
Сообщений: 4
|
![]()
B_N спасибо большое за книжку, сейчас поищу! Кстати уже и сам думал брать что-ли "экстраполировать" положение частицы. Почитаем как они это делают...
|
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 03.06.2008
Сообщений: 1
|
![]()
ExoByte можешь выложить исходники! У меня не броуновское движение, но нужен пример следа от частиц!!!
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 11.05.2009
Сообщений: 15
|
![]()
У меня та же тема, частицы не всегда сталкиваются или слипаются и улетают с экрана. Вот пример моей коллизии:
Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Движение картинки | &RiU | Помощь студентам | 2 | 28.05.2008 23:46 |
движение по эллипсу | Оля | Помощь студентам | 2 | 08.05.2007 00:50 |
Движение | Mickle | Общие вопросы Delphi | 5 | 19.04.2007 23:24 |
Движение по окружности | Mickle | Общие вопросы Delphi | 3 | 13.04.2007 16:24 |
Движение камеры | LepihinMS | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 16.03.2007 20:46 |