forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Алгоритм переворачивающейся страницы (http://forum.boolean.name/showthread.php?t=15742)

Lestar 01.11.2011 06:28

Алгоритм переворачивающейся страницы
 
Необходимо сделать эффект переворачивающейся страницы.Я решил пойти по хардкорному пути-страница хайполи плайник,хочу двигать вертексы,чтобы получился эффект перелистывания.Если страница переворачивается по прямой с алгоритмом особых затруднений не вижу-двигаем цепочку точек(ряд вертиксов) по окружности,как только Y перестал увеличиваться двигаем уже по прямой.Трудность предствляет собой алгоритм при перелистывании страницы с угла.Начинаем с одного вертекса,далее их количество увеличивается .Соседей,которых нужно двигать в этом случае, через массив вычислять как по мне слишком геморно.Как лучше реализовать данный вариант?
Может есть готовые решения,чтобы не изобретать велосипед?
P.S.Работаю с игровым движком,предложения о флеше и прочих веб технологиях отпадают сразу.

Платон Александрович 01.11.2011 16:22

Ответ: Алгоритм переворачивающейся страницы
 
Чем предрасчитанная анимация не устраивает?
ЗЫ
Можно сделать с помощью физики связанных частиц, связав частицы в тот-же плейн + каждый сектор укрепить диагональной связью. А чтобы получившаяся "ткань" была упругой как лист, нужно каждый ряд частиц связать с нижним, корневым рядом (можно через одну или реже).

dsd 01.11.2011 16:29

Ответ: Алгоритм переворачивающейся страницы
 
Алгоритма нет, но есть идея :)

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

Далее можно на внешней стороне страницы вообразить руку, которая её переворачивает, нам важно направление. Можно считать, что изгиб страницы начинается точно в точке под рукой, то есть часть страницы левей руки не изгибается. Значит первый изгибаемый сегмент поворачиваем на максимальный в шарнире угол по направлению к руке, затем следующий, и так до тех пор пока направление сегмента не укажет точно на руку. И через физический движок можно наверно похожим образом, только жесткость в шарнирах и массу элементов подобрать до адекватного поведения :) Такая идея...

Lestar 01.11.2011 16:46

Ответ: Алгоритм переворачивающейся страницы
 
Цитата:

Сообщение от Платон Александрович (Сообщение 207809)
Чем предрасчитанная анимация не устраивает?
ЗЫ
Можно сделать с помощью физики связанных частиц, связав частицы в тот-же плейн + каждый сектор укрепить диагональной связью. А чтобы получившаяся "ткань" была упругой как лист, нужно каждый ряд частиц связать с нижним, корневым рядом (можно через одну или реже).

Анимация не устраивает так как уголок листа двигается не всегда по одно и той же траектории.Делать тучу различных анимаций не комильфо.
Физику использовать не рекомендуется-приложение под iPad-нагружать его лишними расчетами физики нет особого желания.

SBJoker 01.11.2011 17:30

Ответ: Алгоритм переворачивающейся страницы
 
так листание старниц чисто 2D эффект же

Igor 01.11.2011 17:47

Ответ: Алгоритм переворачивающейся страницы
 
А откуда мы смотрим на переворачивающуюся страницу?
2д? если 3д то откуда - сверху, сбоку?

Платон Александрович 01.11.2011 17:52

Ответ: Алгоритм переворачивающейся страницы
 
Цитата:

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

Ну не делай тучу, сделай несколько в ключевых точках да интерполируй, морфинговая анимация должна помочь.
Цитата:

Сообщение от Lestar (Сообщение 207814)
Физику использовать не рекомендуется-приложение под iPad-нагружать его лишними расчетами физики нет особого желания.

Для начала почитай про физику связанных частиц, ок? Проще не придумаешь (то что описал dsd сделается автоматически).

Lestar 01.11.2011 17:52

Ответ: Алгоритм переворачивающейся страницы
 
Цитата:

Сообщение от SBJoker (Сообщение 207818)
так листание старниц чисто 2D эффект же

Нет.Пример реализации можно посмотреть здесь.Но в примере все банально просто ибо весь лист поворачивается по прямой.В моем случае вид 2D.

SBJoker 01.11.2011 18:42

Ответ: Алгоритм переворачивающейся страницы
 
А ну тут то конечно 3D, и тут явно анимированая модель страницы и их несколько.
Или динамически создаются.

ABTOMAT 01.11.2011 18:56

Ответ: Алгоритм переворачивающейся страницы
 
Делал в Максе как dsd предложил.
В игре просто анимировал. Работало ок - я был счастлив.

dsd 01.11.2011 20:12

Ответ: Алгоритм переворачивающейся страницы
 
В примере какая-то хрень, а не листанье. Там просто чем больше угол, тем сильней деформация плоскости по обычному косинусу. То есть на старте от 0 до 30 градусов происходит деформация плоскости с легким заворачиванием её в цилиндр. Плюс к краю коэфф деформации растет. После 30 или сколько там градусов идет просто поворот до (180-30) градусов. Затем коэфф деформации по косинусу снижается до нуля с достижением 180 градуса. Я похожим образом счас цилиндры гнуть пытаюсь.

impersonalis 01.11.2011 21:19

Ответ: Алгоритм переворачивающейся страницы
 
Цитата:

Сообщение от ABTOMAT (Сообщение 207835)
Делал в Максе как dsd предложил.
В игре просто анимировал. Работало ок - я был счастлив.

чо-чо? где-где игра?

ffinder 01.11.2011 21:31

Ответ: Алгоритм переворачивающейся страницы
 
http://wdnuon.blogspot.com/2010/05/i...ing-using.html

ABTOMAT 01.11.2011 22:35

Ответ: Алгоритм переворачивающейся страницы
 
Цитата:

Сообщение от impersonalis (Сообщение 207868)


чо-чо? где-где игра?

Ньюфаги-то не знают

impersonalis 01.11.2011 23:40

Ответ: Алгоритм переворачивающейся страницы
 
Пруфы (игры) или зассал? ;)


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot