Bezier曲线(1):Introducion

参考:
贝塞尔曲线扫盲
贝塞尔曲线的理解
使用贝塞尔曲线绘制多点连接曲线
Bezier curves and surfaces
Bezier Curve Drawing Algorithms
Construction of Bézier Curves

首先来直观地看一下Bezier曲线是什么样的。
这是个二次Bezier曲线,经过 P 0 P_0 P0 P 2 P_2 P2 这个两个点,并且受到 P 1 P_1 P1 点的牵引:
quard
曲线的表达式也极为美观:
C ( t ) = ( 1 − t ) 2 P 0 + t ( 1 − t ) P 1 + t 2 P 2 , t ∈ [ 0 , 1 ] C(t) = (1-t)^2 P_0 + t(1-t)P_1+t^2P_2,t \in [0,1] C(t)=(1t)2P0+t(1t)P1+t2P2t[0,1]
(C means curve)

其实这么一看应该也就能理解Bezier曲线的思想了,也就是给与数据点不同的“权重”来计算出的一种曲线,这些点和权重决定了曲线的某种走势。

给出个稍微严格点的定义吧:
给定空间中的n+1个点 P 0 P_0 P0 P 1 P_1 P1 P 2 P_2 P2,…和 P n P_n Pn,由这些点定义的Bezier曲线是
C ( u ) = ∑ i = 0 n B n , i ( u ) P i C(u) = \sum_{i=0}^n B_{n,i} (u) P_i C(u)=i=0nBn,i(u)Pi
其中, B n , i ( u ) = n ! i ! ( n − i ) ! u i ( 1 − u ) n − i B_n,_i (u) = \frac{n!}{i!(n-i)!}u^i(1-u)^{n-i} Bn,i(u)=i!(ni)!n!ui(1u)ni,也被称为Bernstein多项式。

由Bernstein多项式来计算Bezier曲线是显而易见的的方法,然而这种方法并不是数值稳定的(会引入数值计算误差),因此在实际中,通常采用的是de Casteljau算法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值