我必须为正在离线计算的元素的alpha生成动画。让我们谈谈简单的alpha动画。阿尔法是零,阿尔法增长到1,停留一段时间,并回到零。如何为离线渲染创建贝塞尔/立方体简化动画?
类似下面的图形:
的动画会有不同的时间。我需要一些我可以给予时间(t)并获得价值(v)的东西。
这部动画是放在一个CIFilter
基于类内,用于动态显示过滤器,因为这种过滤器的结果将被计算离线没有CALayer
添加它,所以使用CAKeyframeAnimation
或CABasicAnimation
是毫无疑问的。
如果我可以用一个CALayer的,我这样做:
CABasicAnimation* fadeInOut = [CABasicAnimation animation];
fadeInOut.keyPath = @"filters.myFilter.inputRadius";
fadeInOut.fromValue = @(0);
fadeInOut.toValue = @(10);
fadeInOut.duration = 0.2f;
fadeInOut.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
fadeInOut.autoreverses = YES;
但问题是这条线......没有层添加动画。就像我说的我在CIFilter
班里面!
[self.layer addAnimation:fadeInOut forKey:nil]; // NO WAY!
所以,我的问题是:有没有东西可以给我的时间的价值对于这种曲线的区间我定义动画的时间?
请停止不必要地用iPhone标记所有问题。请阅读标签说明以了解它的使用时间。谢谢。 – rmaddy
请注意,您显示的曲线不能用单个三次曲线进行渲染。您可能需要多条曲线,或者 - 因为这是一条正常的函数曲线,而不是一条可以回溯自身的曲线 - 您应该用一个普通的旧式'y =(fx)'函数对其进行建模。贝塞尔曲线对于这种类型的函数是不必要的并且适得其反。 –
@ Mike'Pomax'Kamermans - 谢谢你,我已经使用了平滑的想法,它现在像丝绸一样工作。谢谢你,圣诞快乐! – SpaceDog