贝塞尔曲线实现原理

贝塞尔曲线
如图,一阶(两点)贝塞尔、二阶(三点)贝塞尔、三阶(四点)贝塞尔、四阶(五点)贝塞尔
Bezier原理其实不复杂~

一阶贝塞尔(直线)

一阶贝塞尔由两个点确定: P 0 P0 P0 P 1 P1 P1 P 0 P0 P0是起点, P 1 P1 P1是终点
当时间 t t t在0~1区间变化时,根据该曲线公式,可以得到多个点坐标,这些点坐标,实际就形成一条直线
P ( t ) = P 0 + ( P 1 − P 0 ) ∗ t P(t) = P0 + (P1 - P0) * t P(t)=P0+(P1P0)t
如下图:
一阶贝塞尔

二阶贝塞尔(曲线)

二阶贝塞尔由3个点确定: P 0 P0 P0 P 1 P1 P1 P 2 P2 P2 P 0 P0 P0是起点, P 2 P2 P2是终点, P 1 P1 P1是控制点
他实际上可以分解为两个一阶贝塞尔, P 0 P0 P0- P 1 P1 P1 P 1 P1 P1- P 2 P2 P2
根据一阶贝塞尔曲线,我们知道可以根据两个点算出一个新的中间点坐标,因此, P 0 P0 P0- P 1 P1 P1=> P m Pm Pm P 1 P1 P1- P 2 P2 P2=> P n Pn Pn
这样,三个点 P 0 P0 P0 P 1 P1 P1 P 2 P2 P2,就转换成了两个点 P m Pm Pm P n Pn Pn
接着,再套用一阶贝塞尔,将 P m Pm Pm- P n Pn Pn=> P ( t ) P(t) P(t),生成的点,就构成了一个曲线
P m = P 0 + ( P 1 − P 0 ) ∗ t Pm = P0 + (P1 - P0) * t Pm=P0+(P1P0)t
P n = P 1 + ( P 2 − P 1 ) ∗ t Pn = P1 + (P2 - P1) * t Pn=P1+(P2P1)t
P ( t ) = P m + ( P n − P m ) ∗ t P(t) = Pm + (Pn - Pm) * t P(t)=Pm+(PnPm)t
生成曲线如下:
二阶贝塞尔

多阶贝塞尔

更多阶贝塞尔,其实就是分解成多个二阶贝塞尔,生成新的点,再构成二阶贝塞尔,多次重复叠加计算,就可以生成曲线了

参考

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值