
前言
很多热爱设计开发的小伙伴,包括老叁我自己平时在学习绘图、后期剪辑、网页设计、建模等等时,都会遇到 “平滑过渡” 或者说是 “贝塞尔曲线” 的字眼。比如,这些地方都出现过它的身影:
- PS 里的钢笔工具(不仅仅这里,大多数Adobe家的软件都有)

- PR 里的缓入缓出关键帧以及插值调整贝塞尔曲线

- H5+CSS3 制作的按钮效果

由以上的案例可见,贝塞尔曲线在任何一款软件中,几乎都是一样的设计安排,其表现形式就是一条 带有句柄和节点的 可调节的曲线。刚接触贝塞尔曲线的时候,我仅仅认为它就是一个简单的函数应用,即便不懂原理也可以瞎捣鼓一番,但是最后,在看到自己的作品和大神的之间那条鸿沟时,方才明白,厉害的事物往往设计简约,而内涵实在不简单!所以才想到要探究一下:贝塞尔曲线是什么,又怎么用,效果真的有那么丝滑吗?话不多说,接下来一起来看看吧。
本文讲述结构

主题
什么是贝塞尔曲线
概述
贝塞尔曲线(Bezier curve)是应用于二维图形应用程序的参数曲线,由“线段”和节点组成,节点是可拖动的支点,表示曲线的趋向,“线段”像可伸缩的橡皮筋。它抽象了线段和曲线,通过控制路径上的四个点(起始点、终止点、两个中间点)来编辑图形;其中中间点和端点的连线称为控制线,这是一条虚拟的线段;两端的端点用来改变曲线的曲率;移动中间点来改变曲线运动轨迹。

由来
贝塞尔曲线最初于1959年开发,由法国攻城狮 Pierre Bezier 在1962年间广泛发表,他起初是应用于汽车主体设计的,然而贝塞尔曲线在另外的领域发展如火如荼,甚至为计算机矢量图形学奠定了基础。大家都知道用电脑绘图不是一件容易的事情,用鼠标来绘制平滑的曲线更是难以操作,鼠绘与手绘的感觉也存在很大差异。所以在一开始,使用电脑制图并不像今天这样有着众多软件、硬件的辅助,那时候实在无法做到随心所欲。而贝塞尔工具的发明很大程度上改善了计算机绘图的僵硬方式。
参数函数定义与原理
一般(n阶)参数公式:
给定点,其贝塞尔曲线为:$B(t)=\sum_{i=0}^{n}\binom{n}{i}P_{i}(1-t)^{n-i}t_{i},t\in [0,1]$
特别的,线性(一阶)公式: