Iphone 根据三个点画一条贝塞尔曲线?

Iphone 根据三个点画一条贝塞尔曲线?,iphone,path,bezier,curve,Iphone,Path,Bezier,Curve,我将如何绘制一条连接三个点的UIBezierpath。我知道一定有一个公式/算法,但我一直在搜索,找不到它。有人能帮我写一些代码,画一条通过三个点的贝塞尔曲线吗。如果您给出的公式没有代码,这也会很有帮助。很容易理解:起点=起点,cp1=第一个控制点,cp2=第二个控制点,终点=终点 提前感谢不幸的是,这不是最简单的事情,所以如果可能的话,我会搜索一些代码来为您解方程(相信我,它们就在那里) 也就是说,你需要做的是根据你的点推导出一个方程。最有可能使用的方程是二次方程,因此y=ax^2+bx+c。

我将如何绘制一条连接三个点的UIBezierpath。我知道一定有一个公式/算法,但我一直在搜索,找不到它。有人能帮我写一些代码,画一条通过三个点的贝塞尔曲线吗。如果您给出的公式没有代码,这也会很有帮助。很容易理解:起点=起点,cp1=第一个控制点,cp2=第二个控制点,终点=终点


提前感谢

不幸的是,这不是最简单的事情,所以如果可能的话,我会搜索一些代码来为您解方程(相信我,它们就在那里)

也就是说,你需要做的是根据你的点推导出一个方程。最有可能使用的方程是二次方程,因此y=ax^2+bx+c。使用三个点,将每个点的x和y插入公式中。然后,可以对函数进行本地化,以查找a、b和c中的值。一旦你找到了这些点,你就有了三个点的完整方程式

这是你自己用纯数学的形式来解决它的方法,尽管看起来有一些内部方法可以用来简化事情(我的背景是物理学,所以我在搜索文档之前跳过了这一步,直接去了数学)。在中,您应该能够使用
-(void)addCurveToPoint:(CGPoint)endPoint controlPoint 1:(CGPoint)controlPoint 1 controlPoint 2:(CGPoint)controlPoint2
-(void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint
,以获得所需的效果。后者是解决我上面解释的方程的方法