我必須爲正在離線計算的元素的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