如何在两个 CATransform3D 之间手动插值?

How can I manually interpolate between two CATransform3Ds?

我有一个开始和结束 CATransform3D,我想在它们之间手动设置动画。也就是说,我想计算时间 t = 0(开始)到 1(结束)的中间变换。如果重要的话,变换是平移和缩放的组合。

我知道 Apple 提供了多种自动从开始到结束状态设置动画的方法,但在我的特定用例中,我实际上需要计算给定时间的中间变换。

一般情况下是很糟糕的。具体情况更容易。假设您从身份转换开始,我建议您简单地编写代码来插入您的比例和平移设置的值,为每个帧创建一个新的转换,然后应用该转换。缩放和平移的变化在数学上都很简单。旋转将是一个更昂贵(读取速度更慢)的计算,因为它涉及三角。