如何在一个固定点和一个改变的情况下在飞行中编写Bezier曲线路径

时间:2013-01-25 10:06:20

标签: uibezierpath caanimation cakeyframeanimation

如果我有一个对象执行此CAKeyframe动画路径(它只是在iPhone的上部区域中的椭圆形状..

 UIBezierPath *trackPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(20, 100, 280, 150)];

现在想象一下,在这段路径旅行的任何时候,我都希望从一个时间点的当前位置和屏幕底部的某个点创建一条平滑的路径。

顺便说一下,我假设一旦有了一个路径,我就可以停止当前的CAKeyframeAnimation并将此路径添加到新的CAKeyframe动画中,但是如果这不正确,你可以在这里给我指点。

1 个答案:

答案 0 :(得分:1)

所以我对自己说'自我.....看起来你将不得不自己回答这个问题,因为没有人想要编辑它或说它是重复的..... "

所以我希望有一些更简单或现成的方法来做到这一点。从我发现的,没有简单的方法。似乎步骤将是;

  1. 获取动画图层的当前位置
  2. 使用您自己的代码计算自己的平滑曲线
  3. 将此路径添加到动画中并为其设置动画。
  4. 至于Bezier曲线的计算我仍然希望找到一些可以插入点的类或代码,并为UIBezier类生成两个控制点以产生曲线。

    就我而言,我只会动画“#34; out"我的上述问题确定了一个确定的点,因此我已经准备好了准备好的平滑曲线。

    在任何一点动画从椭圆形的平滑出口是非常复杂的,在我的情况下,不值得。所以我没有那样做。