Как я могу вручную интерполировать между двумя CATransform3D?

У меня есть и начало и конец CATransform3D что я хотел бы вручную анимировать между. То есть я бы хотел рассчитать промежуточное преобразование по времени t = 0 (начало) до 1 (конец). Преобразования представляют собой комбинацию перевода и масштабирования, если это имеет значение.

Я понимаю, что Apple предоставляет несколько способов автоматической анимации от начального до конечного состояния, но в моем конкретном случае использования мне действительно нужно вычислить промежуточное преобразование в определенный момент времени.

1 ответ

Решение

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

Другие вопросы по тегам