Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Отрисовка воды (http://www.flasher.ru/forum/showthread.php?t=126937)

Герыч 01.07.2009 01:01

Отрисовка воды
 
В надежде, что хоть кто-нибудь тут сталкивался с данной задачей пишу сюда свой вопрос.

Дано:
Жидкость, представленная n частицами. каждая имеет координаты (x,y)
R - расстояние, на котором 2 частицы начинают друг на друга влиять(притяжение/отталкивание)
Требуется:
Нарисовать по этим точкам контур(или несколько), плавно огибающий их.
Внутренние "дырки"(или пузырьки) должны быть корректно отображены именно пузырьками. Т.е. контур нужен такой, что он разделяет воду и не воду.

Рисовать частицы кружками не предлагать.
сейчас больше склоняюсь к алгоритму Marching squares(вот где посмотреть:блог одного программиста|swf пример).

Проблемы с Marching squares:
1)Сначала для него надо корректно выбрать те уголки клеток, где "есть" жидкость. Не знаю как это сделать быстро и правильно.
2)Скорость работы
3)Качество. При большом размере клеток контур будет угловатым.

Подкиньте идейку или статейку или ещё что, буду оч благодарен.:drinks:

Добавлено через 18 минут
Если что, воду моделирую при помощи SPH(по этой pdf-ке и по этой статье)
Поэтому при отрисовке для каждой точке уже вычислена плотность и давление.. можно как-то использовать при рисовании

elmortem 01.07.2009 02:14

Третий пункт можно забороть, если рисовать кривыми Безье. А если всё будет гладко, то размер сетки можно и увеличить, что, возможно, заборет второй пункт. Первый не совсем ясен, вроде как алгоритм это должен учитывать, нет?

SaFeR 01.07.2009 09:46

blob это называется

gnus 01.07.2009 10:24

тут взаимодействующие по законам физики молекулы:
http://scrollingchart.narod.ru/gas.html
думаю можно доделать и контурами.

Герыч 01.07.2009 11:44

To elmortem:
В принципе ты наверно прав, если размер сетки делать большим то, как в том примере находящиеся рядом частицы будут порождать общий контур, а уже безье сгладит. Ладно попробую помучаться
To SaFeR:
причём тут это?)
To gnus:
сама жидкость уже реализована. Тоже частички на экране тока у меня их 200 штук

SaFeR 01.07.2009 16:52

Цитата:

Сообщение от Герыч (Сообщение 832296)
To SaFeR:
причём тут это?)

Притом, что это название эффекта который тебе нужен.
http://www.flasher.ru/forum/showthread.php?t=52451

Герыч 01.07.2009 18:36

в той ветке они пришли к metaballs.. это не то, они вроде слишком медленные. Примеры качал, прооитимизированные. 100-200 точек не потянет никак

Яски 01.07.2009 18:43

Это очень сложная, но в тоже время интересная задача, уверен, что справишься? :)
Дай на водичку из частичек посмотреть.

Герыч 01.07.2009 19:29

Тут 2 ссылки 100 и 200 частиц

Добавлено через 3 минуты
А так, вроде уверен. если я понял как это всё работает, сделал, то уже не хочется останавливаться


Часовой пояс GMT +4, время: 22:28.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.