使用CAMediaTimingFunction计算时间(T)的值 [英] Using CAMediaTimingFunction to calculate value at time (t)

查看:14
本文介绍了使用CAMediaTimingFunction计算时间(T)的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Cocoa/Touch中,CAMediaTimingFunction表示四个控制点,它们指定计时函数的三次Bezier曲线。对于我正在编写的应用程序,我希望能够在任意时间t(0->1)提取所述Bezier曲线的结果。令我困惑的是,当我查找如何do this时,结果也应该是一个点,而不是标量:

然而,Apple的实现产生了一个标量值(您可以在此图上看到他们绘制了x(T)与t:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Animation_Types_Timing/Articles/Timing.html#//apple_ref/doc/uid/TP40006670-SW1)

那么,Apple会忽略结果的y坐标,而只处理x吗?这似乎很奇怪,因为这样您就不需要传入控制点,而是需要传递控制标量,因为y根本不会影响结果。

推荐答案

注意:我不是核心动画专家。这只是我阅读您链接的文档后的理解。

Apple在这里混合了坐标系,这造成了一些混乱。

x(t)在示例中,曲线图表示沿某条路径的标量级数,而不是物理坐标。

CAMediaTimingFunction中使用的控制点用于描述该级数,而不是几何点。更令人困惑的是,控制点中的x实际上映射到曲线图上的t,控制点中的y映射到曲线图上的x(t)

kCAMediaTimingFunctionEaseInEaseOut的曲线图为例,该曲线图大致由控制点(0,0)、(0.5,0)、(0.5,1)、(1,1)来描述。

这篇关于使用CAMediaTimingFunction计算时间(T)的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆