|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Точки должны менять свою позицию относительно фигуры, только при изменении формы фигуры. Т.е. если ты просто искажаешь исходную фигуру, то достаточно, просто применить те же трансформации к уже сгенерированным точкам.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Также стоит попробовать заполнять фигуру не с центра, а с одного из краев, что бы точки располагались менее хаотично в разных итерациях. Или заполнять столбцами, а потом уже раздвигать их.
Добавлено через 10 минут По сути твоя задача это морфинг одного объекта в другой. Все реализации "красивого" морфинга, что я видел делались вручную. Т.е. берется одна фигура из определенного количества точек и вручную передвигая точки из нее получается другая фигура. В итоге, заранее известно какая точка из одной фигуры будет соответствовать точке на другой.
__________________
משיח לא בא משיח גם לא מטלפן Последний раз редактировалось alatar; 20.12.2012 в 21:26. |
|
|||||
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
|
Да, верно. Можно сказать и так. Но я не верю, что нет хотя бы приемлемых решений для моей задачи без "ручной" анимации, вот в чем дело.
В конце-концов я вполне отчетливо представляю себе демку на нэйпе или боксе, где меняется окружающая фигура, внутри которой находятся шарики, которые автоматически занимают наиболее выгодные места. http://napephys.com/samples.html#swf...uctibleTerrain Вот типа такого.
__________________
hauts.ru |
|
|||||
Ну, не знаю. Попробуй совместить морфинг контура (что несколько проще) и распределение точек. Т.е. в начальную фигуру набрасываем точек, потом начинаем понемногу трансформировать один контур в другой и на каждой итерации запускать расталкивание точек (не вбрасывая их повторно).
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
Регистрация: Mar 2010
Сообщений: 137
|
А каким образом задан контур? Это функция или набор точек?
|
|
|||||
Регистрация: Jun 2012
Сообщений: 70
|
Может наложить сетку на фигуру? Выбираем только те ячейки, которые частично или полностью вмещают фигуру. Дальше, при генерации точек, выбираем случайную клетку, и в неё в случайное место вставляем точку.
Для получения равномерного распределения точек, можно сделать весовые коэффициенты для клеток, например коэффициент зависит от площади фигуры, которая помещена в клетку. При морфинге в другую фигуру, делаем тоже самое и дальше для каждой старой точки, ищем ближайшую новую, эта пара точек и будет отрезком для анимации движения. Ближайшие точки, можно находить либо полным перебором, либо используя всякие spatial grid. Если важна визуальная часть морфинга, то можно учитывать вектор направления движения на предыдущих шагах, при выборе точки "близнеца". В таком случае, подходящими будут только те точки, которые попадают в конус, который определяет вектор движения и какой-нибудь небольшой угол, например в 90 градусов. Если фигуры вообще разные, то можно и не парится на счет поиска "близнеца", а просто взять случайную точку и двигать старую точку в новую. Дополнение: А как такой вариант? Просканить битмапу и создать массив координат заполненных пикселей, при генерации распределения, выбираем случайную ячейку в массиве и вставляем точку в полученные координаты. По сути, это частный случай варианта про наложение сетки.
__________________
Блог: http://devizgl.blogspot.com/ Последний раз редактировалось vizgl; 22.12.2012 в 06:27. |
|
|||||
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
|
semenyakinVS, если ко мне вопрос, то у меня нет контуров. Есть просто картинки. На данный момент — просто пятна черные.
vizgl, спасибо, дельный совет, буду пробовать.
__________________
hauts.ru |
Часовой пояс GMT +4, время: 18:10. |
|
« Предыдущая тема | Следующая тема » |
|
|