三次Bezier曲線算法


三次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曲線較少使用。

一次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] \]

二次Bezier曲線

\[ 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] \]

三次Bezier曲線

\[ 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] \]

Casteljau遞推算法

  • 主要是為了方便程序計算,將矩陣運算寫為了遞推運算,是一種工程化處理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM