0

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

提前致谢

4

1 回答 1

1

不幸的是,这不是最简单的事情,所以如果可能的话,我会四处寻找一些可以为你解方程的代码(相信我)。

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

这就是您以纯数学形式自己解决问题的方法,尽管您似乎可以使用一些内部方法来简化事情(我的背景是物理学,所以我抢先一步,在搜索文档之前直接进入数学) . 在UIBezierPathClass Reference中,您应该能够使用- (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2- (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint获得所需的效果。后者是解决我上面解释的方程的方法。

于 2011-10-09T22:36:28.563 回答