![]() |
|
||||||||||
|
|||||
|
В надежде, что хоть кто-нибудь тут сталкивался с данной задачей пишу сюда свой вопрос.
Дано: Жидкость, представленная n частицами. каждая имеет координаты (x,y) R - расстояние, на котором 2 частицы начинают друг на друга влиять(притяжение/отталкивание) Требуется: Нарисовать по этим точкам контур(или несколько), плавно огибающий их. Внутренние "дырки"(или пузырьки) должны быть корректно отображены именно пузырьками. Т.е. контур нужен такой, что он разделяет воду и не воду. Рисовать частицы кружками не предлагать. сейчас больше склоняюсь к алгоритму Marching squares(вот где посмотреть:блог одного программиста|swf пример). Проблемы с Marching squares: 1)Сначала для него надо корректно выбрать те уголки клеток, где "есть" жидкость. Не знаю как это сделать быстро и правильно. 2)Скорость работы 3)Качество. При большом размере клеток контур будет угловатым. Подкиньте идейку или статейку или ещё что, буду оч благодарен. ![]() Добавлено через 18 минут Если что, воду моделирую при помощи SPH(по этой pdf-ке и по этой статье) Поэтому при отрисовке для каждой точке уже вычислена плотность и давление.. можно как-то использовать при рисовании |
|
|||||
|
Третий пункт можно забороть, если рисовать кривыми Безье. А если всё будет гладко, то размер сетки можно и увеличить, что, возможно, заборет второй пункт. Первый не совсем ясен, вроде как алгоритм это должен учитывать, нет?
__________________
Тихо, идёт запись! |
|
|||||
|
blob это называется
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 100
|
тут взаимодействующие по законам физики молекулы:
http://scrollingchart.narod.ru/gas.html думаю можно доделать и контурами.
__________________
http://komimap.ru |
|
|||||
|
To elmortem:
В принципе ты наверно прав, если размер сетки делать большим то, как в том примере находящиеся рядом частицы будут порождать общий контур, а уже безье сгладит. Ладно попробую помучаться To SaFeR: причём тут это?) To gnus: сама жидкость уже реализована. Тоже частички на экране тока у меня их 200 штук |
|
|||||
|
Притом, что это название эффекта который тебе нужен.
http://www.flasher.ru/forum/showthread.php?t=52451 |
|
|||||
|
в той ветке они пришли к metaballs.. это не то, они вроде слишком медленные. Примеры качал, прооитимизированные. 100-200 точек не потянет никак
|
![]() |
![]() |
Часовой пояс GMT +4, время: 15:02. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| fluid , marching squares , water , Вода , жидкость |
|
|