平滑Bezier曲线

时间:2011-09-08 07:40:13

标签: bezier smooth curve

我想在iphone中平滑一些手绘线条。 我使用了以下代码 http://webdocs.cs.ualberta.ca/~graphics/books/GraphicsGems/gems/FitCurves.c

但是,我发现有些bezier弯曲错了,​​第二个控制点和终点无效。 以前有人有同样的问题吗? 感谢。

1 个答案:

答案 0 :(得分:2)

Bezier曲线不是设计用于通过提供的顶点! 它们被设计成通过控制点塑造受影响的平滑曲线。

首先,您必须决定是否要在缺失点之间进行插值, 或者如果您想过滤非平滑数据:

过滤

您应该使用小平均窗口查看“滑动平均值”。 (尝试5-10像素)。 其工作原理如下:(查找wiki以获取详细说明)

我在这里使用10点的平均窗口:
首先计算点0-9的平均值,然后输出结果作为结果点0
然后计算点1-10的平均值和输出,结果1
等等。

插值的 如果要使用平滑曲线在(缺失)点之间进行插值,可以使用分段三次样条:

通过3个顶点计算立方多边形的系数。 首先计算立方多边形:
Point [0] - Point [2],但只能从Point [0]到Point [1]绘制输出     然后你继续前进一步:通过
计算 点[1] - 点[3],但是只从p1到p2绘制。 等等。

您需要在维基上搜索三次插值,以获得如何计算立方多边形(有时称为三次样条)的详细说明。