Bezier曲线——de Casteljau递推算法实现

这篇博客介绍了Bezier曲线的基本定义,并详细阐述了de Casteljau递推算法,该算法用于计算Bezier曲线上的点。通过Python代码展示了如何避免递归计算中的重复操作,提供了简化计算的方法。
摘要由CSDN通过智能技术生成

1. 定义

给定 n + 1 n+1 n+1个点的位置矢量 P i ( i = 0 , 1 , … , n ) P_i(i=0,1,\dots,n) Pi(i=0,1,,n),则Bezier曲线可以定义为
P ( t ) = ∑ i = 0 n P i B i , n ( t ) , t ∈ [ 0 , 1 ] P(t)=\sum_{i=0}^nP_iB_{i,n}(t),\quad t \in [0,1] P(t)=i=0nPiBi,n(t),t[0,1]
其中 P i P_i Pi(i=0,1,\dots,n)构成该Bezier曲线的特征多边形, B i , n ( t ) B_{i,n}(t) Bi,n(t) n n n次Bernstein基函数
B i , n ( t ) = C n i t i ( 1 − t ) n − i = n ! i ! ( n − i ) ! t i ⋅ ( 1 − t ) n − i , ( i = 0 , 1 , … , n ) B_{i,n}(t) = C_n^it^i(1-t)^{n-i}=\frac{n!}{i!(n-i)!}t^i\cdot (1-t)^{n-i},\quad (i=0,1,\dots,n) Bi,n(t)=Cni

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值