如何在运行中编写一个固定点和一个变化的贝塞尔曲线路径

Posted

技术标签:

【中文标题】如何在运行中编写一个固定点和一个变化的贝塞尔曲线路径【英文标题】:How to write a Bezier curved path on the fly with one fixed point and one changing 【发布时间】:2013-01-25 10:06:19 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

所以我对自己说:“自我......看起来你将不得不自己回答这个问题,因为没有人愿意编辑它或说它是重复的......”

所以我希望有一些更简单或现成的方法来做到这一点。根据我的发现,没有简单的方法。看来步骤是这样的;

    获取动画层的当前位置 用你自己的代码计算出一条漂亮的平滑曲线 将此路径添加到动画并为其设置动画。

至于贝塞尔曲线的计算,我仍在寻找一些可以将点插入其中的类或代码,并为 UIBezier 类生成两个控制点以生成曲线。

在我的情况下,我只会将上述问题形状中的“出”动画一个确定的点,从而准备好我准备好的平滑曲线。

在任何时候对椭圆的平滑退出进行动画处理都非常复杂,就我而言,这不值得。所以我没有这样做。

【讨论】:

很抱歉。无论如何,你会在这里找到部分答案***.com/questions/2576113/…,尤其是引用 Ole Begemann 的项目的答案oleb.net/blog/2010/12/…

以上是关于如何在运行中编写一个固定点和一个变化的贝塞尔曲线路径的主要内容,如果未能解决你的问题,请参考以下文章

6种常见三维曲面的Three.js实现

三次b样条曲线的基函数是固定的吗

Bezier(贝塞尔)曲线简介

如何连接多条贝塞尔曲线?

如何使用 Swift 在 SpriteKit 上绘制贝塞尔曲线?

绘图和绘画机器人的算法 - 任何提示?