有一种动画是跟着一条轨迹走的,又叫曲线动画,曲线有很多种,最著名的是贝塞尔曲线。什么是贝塞尔曲线,最简单的就是你用photoshop的钢笔工具画出来的曲线就是贝塞尔曲线。
曲线的核心定义:起始点、终止点(也称锚点)、控制点。通过调整控制点,贝塞尔曲线的形状会发生变化。
贝塞尔曲线是分阶数的。
一阶贝塞尔曲线:
公式:
其中:B(t) 为 t 时间下点的坐标;P0 为起点,Pn 为终点,Pi 为控制点。
意义:由 P0 至 P1 的连续点, 描述的一条线段。
二阶贝塞尔曲线:
公式:
原理:
1、由 P0 至 P1 的连续点 Q0,描述一条线段。
2、由 P1 至 P2 的连续点 Q1,描述一条线段。
3、由 Q0 至 Q1 的连续点 B(t),描述一条二次贝塞尔曲线。
看到这里,应该明白贝塞尔曲线是怎么回事了。图中绿色的是曲线的切线。
三阶贝塞尔曲线:
公式:
高阶贝塞尔曲线:
看图非常的复杂,看公式的推导:
拿二阶的曲线公式来说是这样的:
看起来很复杂,把它拆分开来看:
然后再合并成这样:
最后你可以发现,可以变成这样了:
B0 和 B1分别是 P0 到 P1 和 P1到 P2 的 1 阶贝塞尔曲线。而 2 阶贝塞尔曲线 B 就是 B0 到 B1 的 1 阶贝塞尔曲线。这样理解起来应该比较好理解。
然而还是很复杂,看 n 阶贝塞尔曲线的推导公式:
给定点P0、P1、…、Pn,其贝塞尔曲线即:
例如 n 等于5的时候:
可以用下面的递归表达:
用
术语
一些关于参数曲线的术语,有
即多项式
又称作n阶的伯恩斯坦基底多项式,定义0的0次方 = 1。
点Pi称作贝塞尔曲线的控制点。多边形以带有线的贝塞尔点连接而成,起始于P0
并以Pn终止,称作贝塞尔多边形(或控制多边形)。贝塞尔多边形的凸包(convex hull)包含有贝塞尔曲线。
因为贝塞尔曲线公式里有时间,而且在高中大学都没学过,所有理解起来比较困难。真是艺术般的曲线。
参考:
http://my.oschina.net/ososchina/blog/677307
http://blog.csdn.net/vrix/article/details/39206975
http://blog.csdn.net/tianjian4592/article/details/47067161
http://www.2cto.com/kf/201503/380377.html
http://blog.csdn.net/androidzhaoxiaogang/article/details/8680330
http://blog.csdn.net/linmiansheng/article/details/18763987