Создание анимации с эффектом «джинна» в Какао - PullRequest
3 голосов
/ 14 сентября 2011

Как бы мне создать анимацию, похожую на «эффект минимизации джина» в Mac OS X? То есть, я хочу, чтобы анимация начиналась в некоторой заданной точке (или маленьком прямоугольнике), а затем «переместилась» в ее большую прямоугольную форму с эффектом «джинна».

Как можно добиться такой анимации? Предоставляет ли Core Animation что-нибудь для этого?

Если мне придется делать это вручную, то есть кадр за кадром, я думаю, что я мог бы сделать математические вычисления, необходимые для определения кривых в каждом кадре. Однако вопрос в том, как бы я нарисовал прямоугольный NSImage (или CGImage) в пределах указанных кривых?

Ответы [ 2 ]

2 голосов
/ 15 ноября 2011

Это можно сделать с помощью Core Image и немного поработать. Пожалуйста, смотрите мой пост здесь (к сожалению, пример проекта Quartz Composer больше не работает "из коробки", он нуждается в небольшом обновлении. Хотя источник все еще там):

Эффект джинна

2 голосов
/ 15 сентября 2011

Единственный встроенный способ сделать это - использовать приватную функцию CGSCreateGenieWindowAnimation Core Graphics. Поскольку это не публичный метод, его нельзя использовать в приложениях магазина приложений.

Вот простой пример, показывающий, как его использовать здесь .

Деформация изображения будет более сложной. Вы могли бы сделать это, деконструируя изображение окна строка за строкой и сжимая каждую строку пикселей, перемещая весь участок вниз по экрану. Однако вам лучше использовать какой-нибудь алгоритм деформации, который мне не известен.

...