从多个点绘制bezier

时间:2010-07-28 15:23:00

标签: iphone graphics ipad

我的x,y有50分。我需要绘制在所有点上通过的最平滑的贝塞尔曲线,或者换句话说,最适合曲目的贝塞尔曲线。

我该怎么做?感谢

2 个答案:

答案 0 :(得分:3)

我在3D中遇到类似的问题。在2D中稍微容易一些,因为如果不平行,线将始终相交。

首先,阅读二次贝塞尔曲线。每条曲线由三个点表示。该线不会通过中间点。因此,你的中间点不能成为你想要适应的点之一,或者它不会经历它。

相反,二次贝塞尔曲线的起点和终点必须是您希望它通过的两个连续点。那你的中间点是什么?

解决这个问题的一种方法(从未尝试过它本身HENCE它可能看起来不太完美,但我想到了我的头脑)是计算从第-1个数据点到第0个数据点的切线,并找到它与第一个数据之间的交叉点指向第二个数据点。然后使用此交点作为中间贝塞尔曲线值,绘制第0个数据点和第1个数据点之间的线。

显然,你可能在曲线的末端遇到麻烦,这可能需要一些创造性思维来使它们看起来很好。 (第一点没有第一点)。

抱歉缺少图表。我会画一个,但我在iPad上。

答案 1 :(得分:0)

  1. 想象一下3点贝塞尔曲线(start-A,middle-B,end-C)

  2. 想象一下从A到C的直线。

  3. 想象一条垂直于AC并穿过B点的直线。

  4. 这两条线在D点交叉。

  5. 贝塞尔曲线将从D到B的一半完全通过。换句话说,如果你想要通过3个点的贝塞尔曲线,你必须使第二个点从开始和结束的位置比实际的第二个点多2倍。 / p>