根据三点绘制贝塞尔曲线?

时间:2011-10-09 22:12:52

标签: iphone path bezier curve

我如何绘制UIBezierpath以连接三个点。我知道必须有一个公式/算法,但我一直在搜索,找不到它。有人能够帮我提供一些代码,通过三点绘制一条bezier曲线。如果您给出的公式没有代码也会有所帮助。这样很容易理解:start =起始点,cp1 =第一个控制点,cp2 =第二个控制点,结束=结束点。

提前致谢

1 个答案:

答案 0 :(得分:1)

遗憾的是,这不是最简单的事情,所以如果可能的话,我会搜索一些代码来解决你的方程式(在那里,相信我)。

话虽这么说,你需要做的是根据你的观点得出一个等式。最可能使用的方程式是二次方,因此你将得到y = ax ^ 2 + bx + c。使用您的三个点,您将从每个点插入公式中的x和y。然后,您可以本地化函数以查找a,b和c中的值。一旦找到这些点,就可以获得三个点的完整等式。

这就是你如何以纯粹的数学形式自己解决它,虽然似乎有一些内部方法可以用来简化事物(我的背景是物理学,所以我跳了枪然后直接进入数学搜索文档)。在UIBezierPath Class Reference中,您应该能够使用- (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2- (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint来获得所需的效果。后者是解决我上面解释的等式的方法。