SnappyBézier曲线

时间:2012-03-11 21:11:33

标签: c# math interpolation shapes bezier

Bézier曲线上的控制点越多,曲线到达的任何给定控制点附近越少。

例如,2点(线性)曲线到达两个控制点。一个3点(二次)曲线在三个点之间形成一个弧,这对我来说是理想的,它不是精确跟随线,因为它不是一条曲线,但是控制点之间存在强烈的视觉关系和线。

对于具有锯齿形控制点的4点(立方)曲线,但是所得到的线更直。扩展为在Z字形中使用100个控制点,曲线几乎完全平直。

为了保持Z字形的例子,形成我正在寻找的曲线的一种方法,在这种情况下看起来像一个不那么积极平滑的锯齿形而不是Bézier曲线产生的100个控制点,将是将形状分解成许多小的3点Bézier曲线,在它们之间进行插值。

是否有C#,伪代码甚至只是一个简单形式的更多信息可用于执行更复杂的Bézier曲线相关任务?

1 个答案:

答案 0 :(得分:6)

非常容易实现的是使用二次贝塞尔曲线建立曲线

enter image description here

您基本上使用源顶点之间的中点作为每个弧的开始/停止和源顶点作为弧的控制点。这种选择保证了切线的连续性,并对曲线形状进行了很多控制。

通过使用两个具有相同坐标的连续源顶点,您也可以轻松获得尖角。