三次Bezier曲线算法

三次Bezier曲线算法

  • 给定(n+1)个控制点(p_i(i=0,1,2,…,n)),则(n)次Bezier曲线定义为:

[p(t)=\sum_{i=1}^np_iB_{i,n}(t), t\in[0,1] ]

Bernstein基函数,其表达式为:

[B_{i,n}=\frac{n!}{i!(n-i)!}t^i(1-t)^{n-i}=C^i_nt^i(1-t)^{n-i},(i=0,1,2,…,n) ]

  • 四个控制点就是3次Bezier曲线
  • 工程中一般使用2次、3次Bezier曲线,高次Bezier曲线较少使用。

[ p(t)= \left[\begin{matrix} t & 1 \end{matrix}\right] \left[\begin{matrix} -1 & 1 \ 1 & 0 \end{matrix}\right] \left[\begin{matrix} p_0 \ p_1 \end{matrix}\right] ,t\in[0,1] ]

[ p(t)= \left[\begin{matrix} t^2 & t & 1 \end{matrix}\right] \left[\begin{matrix} 1 & -2 & 1 \ -2 & 2 & 0 \ 1 & 0 & 0 \end{matrix}\right] \left[\begin{matrix} p_0 \ p_1 \ p_2 \end{matrix}\right] ,t\in[0,1] ]

[ p(t)= \left[\begin{matrix} t^3 & t^2 & t & 1 \end{matrix}\right] \left[\begin{matrix} -1 & 3 & -3 & 1 \ 3 & -6 & 3 & 0 \ -3 & 3 & 0 & 0 \ 1 & 0 & 0 & 0 \end{matrix}\right] \left[\begin{matrix} p_0 \ p_1 \ p_2 \ p_3 \end{matrix}\right] ,t\in[0,1] ]

  • 主要是为了方便程序计算,将矩阵运算写为了递推运算,是一种工程化处理

Original: https://www.cnblogs.com/brilliantM/p/14782181.html
Author: 帅气无敌朋子
Title: 三次Bezier曲线算法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577152/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球