贝塞尔曲线参考 : https://github.com/venshine/BezierMaker
贝塞尔曲线的 三阶 / 四阶 / 五阶 曲线的绘制 , 都是依赖于其低阶贝塞尔曲线实现的 ,
三阶贝塞尔曲线 是由 二阶贝塞尔曲线 实现的 ,
四阶贝塞尔曲线 是由 三阶贝塞尔曲线 实现的 ;
德卡斯特里奥算法 可以实现 贝塞尔曲线 降阶的效果 ;
下面开始介绍 德卡斯特里奥算法 ;
在 向量
上 选择
点 ,
点将
向量切割成比例为
,
也就是
到
的距离
, 与
到
的距离
, 其比值为
, 写成公式就是如下形式 :
到
的距离
全长为
,
到
的距离
比例占到全长的
,
的取值范围是
~
之间的浮点值 ,
到
的距离
比例占到全长的
;
再回到贝塞尔曲线中 ,
上图是
到
的 二阶 贝塞尔曲线 ,
是起始点 ,
是终止点 ,
是控制点 ;
首先 通过 一阶等式 , 在
到
之间确定出
点 ,
到
点占 整个
到
的比例为
;
然后 通过 一阶等式 , 在
到
之间确定出
点 ,
到
点占 整个
到
的比例为
;
最后 通过 一阶等式 , 在
到
之间确定出
点 ,
到
点占 整个
到
的比例为
;
最终得到如下等式 :
当
从
~
进行变化时 ,
点形成的曲线就是 二阶贝塞尔曲线 ;
( 网上找的图片 , 图片中的
也就是上面说的比例
)
二阶贝塞尔曲线中的
点 ,
由 起始点
到 控制点
组成的向量 , 和 由 控制点
到 终止点
组成的向量 ,
这两个向量 根据比例
决定的 一阶贝塞尔曲线
到
向量 根据比例
确定的 ,
也就是
点 由 一阶贝塞尔曲线
到
向量 确定 ;
上述操作 , 将 二阶贝塞尔曲线 , 降阶成了 一阶贝塞尔曲线 ;
由上面的结论进行类推 :
二阶贝塞尔曲线 ( 起止点 +
个控制点 ) 由
条 一阶贝塞尔曲线 确定 ,
三阶贝塞尔曲线 ( 起止点 +
个控制点 ) 由
条 二阶贝塞尔曲线 确定 ,
四阶贝塞尔曲线 ( 起止点 +
个控制点 ) 由
条 三阶贝塞尔曲线 确定 ,
阶贝塞尔曲线 ( 起止点 +
个控制点 ) 由
条
阶贝塞尔曲线 确定 ;
贝塞尔曲线递推公式如下 :