1、一阶贝塞尔曲线
一阶贝塞尔曲线的原理就是一条直线,其实就是直接画了一个Path出来,在这里不做过多的介绍,本文主要介绍的是二阶的贝塞尔曲线。
2、二阶贝塞尔曲线
2.1、二阶贝塞尔曲线效果图
a9d3031e-c46b-4c7c-9b70-46e747b8d938.gif
2.2、实现原来
-
(1)、 二阶曲线由两个数据点start point(A) 、end point(C),一个控制点(B)来描述曲线状态,大致如下:
99cc1255-97f4-490d-b00d-c6031531bcce.jpg - (2)、 连接AB BC,并在AB上取点D,BC上取点E,使其满足条件:AD:AB = BE:BC
ab682f47-b263-40da-9a2f-9a0a0499ba60.jpg - (3) 、连接DE,取点F,使得:AD:AB = BE:BC = DF:DE
e3ee5657-ad91-4b2a-a461-ba9962cad76f.jpg -
(4)、动态图
b71052cc-dea0-4e7a-a4f6-42fda6811009.gif
3、三阶贝塞尔曲线
D0F48BF2-A3A3-4170-91A2-06DFFDE7B9EC.png
二阶曲线由两个数据点:start point(P0) 、end point(P3),两个控制点:P1、P2来描述曲线状态
- (1)、链接P0和P1 并在取点A
- (2)、链接P1和P2 并在取点B
- (3)、链接P2和P3 并在取点C
- (4)、使P0A : P0P1 = P1B : P1P2 = P2C : P2P3
- (5)、链接A和B 并在取点D
- (6)、链接B和C 并在取点E
- (7)、使*AD : AB = BE : BC = P0A : P0P1 = P1B : P1P2 = P2C : P2P3
- (8)、链接D和E 并在取点P
使DP : DE = AD : AB = BE : BC = P0A : P0P1 = P1B : P1P2 = P2C : P2P3
4、代码
4.1、实现到七阶的贝塞尔
4.2、查看CubicBezierEasing的贝塞尔曲线的展示
- viewModel.onProgressChanged