next up previous contents
Next: 2.3 Degree elevation Up: 2. Curve di Bézier Previous: 2.1 Polinomi di Bernstein   Indice

2.2 Curve di Bézier

Vediamo ora come utilizzare i polinomi di Bernstein per definire le curve di Bézier.

Definizione 2.3   Una curva di Bézier è una curva parametrica definita da $n+1$ punti (di controllo) $b_i\in\mathbb{E}^d,\ i=0,\ldots,n$

\begin{displaymath}
\mathbf{X}(t)=\sum_{i=0}^n \mathbf{b}_i B_i^n(t)\qquad\qquad\qquad t\in[0,1]
\end{displaymath}

Il poligono che si ottiente congiungendo i punti di controllo prende il nome di poligono di controllo. È evidente che l'ordine dei punti di controllo è determinante per la definizione della curva.

Cominciamo con l'esaminare più approfonditamente le proprietà delle curve di Bézier. La curva $\mathbf{X}(t)$ sarà compresa nell'inviluppo convesso dei $\mathbf{b}_i$ poichè i polinomi di Bernstein definiscono una combinazione convessa. Mostriamo la proprietà che prende il nome di end-point interpolation:

$\displaystyle \mathbf{X}(0)$ $\textstyle =$ $\displaystyle \sum_{i=0}^n \mathbf{b}_i B_i^n(0) = \mathbf{b}_0$  
$\displaystyle \mathbf{X}(1)$ $\textstyle =$ $\displaystyle \sum_{i=0}^n \mathbf{b}_i B_i^n(1) = \mathbf{b}_1$  

questo significa che la curva di Bézier interpola i punti di controllo agli estremi.
Figura 2.2: End-point interpolation
\includegraphics[width=0.8\textwidth]{img/endpointbez}
Un'altra interessante proprietà è l'invarianza per trasformazioni affini. Infatti, definità una trasformazione $\Phi:\mathbb{E}^d\rightarrow
\mathbb{E}^d$, del tipo $\Phi(\mathbf{p})=A\mathbf{p}+\mathbf{v}$, risulta

\begin{displaymath}
\Phi(\mathbf{X}(t))= \sum_{i=0}^n \Phi(\mathbf{b}_i) B_i^n(t)
\end{displaymath}

e questo è giustificato dal fatto che i $B_i^n(t)$ individuano una combinazione baricentrica.
Figura 2.3: Invarianza per trasformazioni affini: rotazione di $\pi $
\includegraphics[width=0.8\textwidth]{img/bezinvtra}
Le curve di Bézier soddisfano anche la proprietà di simmetria, cioè, posto

\begin{displaymath}
\mathbf{C}(s) = \sum_{i=0}^n \mathbf{b}_{n-i} B_i^n(s)
\end{displaymath}

risulta $\mathbf{C}(s) = \mathbf{X}(s)$. Questo si ricava dal fatto che

\begin{displaymath}
B_i^n(s)=B_{n-i}^n(1-s)
\end{displaymath}

infatti

\begin{displaymath}
\mathbf{C}(s) = \sum_{i=0}^n \mathbf{b}_{n-i} B_{n-i}^n(1-s) =
\sum_{j=0}^n \mathbf{b}_{j} B_j^n(1-s) = \mathbf{X}(1-s)
\end{displaymath}

Le curve di Bézier soddisfano anche la proprietà di linearità, cioè, dati

\begin{displaymath}
\mathbf{X}(t)=\sum_{i=0}^n \mathbf{b}_i B_i^n(t)\quad, \quad
\mathbf{Y}(t)=\sum_{i=0}^n \mathbf{c}_i B_i^n(t)
\end{displaymath}

risulta

\begin{displaymath}
\alpha \mathbf{X}(t) + \beta \mathbf{Y}(t) =
\sum_{i=0}^n (\alpha\mathbf{b}_i + \beta\mathbf{c}_i) B_i^n(t)
\end{displaymath}

Un'ulteriore proprietà delle curve di Bézier è la precisione lineare. Se i $\mathbf{b}_i$ sono allineati

\begin{displaymath}
\mathbf{b}_i = \mathbf{b}_0 + \frac{i}{n}\mathbf{v}\qquad\qquad\qquad
i=0,\ldots,n
\end{displaymath}

Allora la curva di Bézier è la retta su cui giacciono, infatti
$\displaystyle \mathbf{X}(t)$ $\textstyle =$ $\displaystyle \sum_{i=0}^n \mathbf{b}_i B_i^n(t) = \sum_{i=0}^n
(\mathbf{b}_0 + \frac{i}{n}\mathbf{v}) B_i^n(t)=$  
  $\textstyle =$ $\displaystyle \mathbf{b}_0 + \left(\sum_{i=0}^n \frac{i}{n} B_i^n(t)\right)\mathbf{v}$  
  $\textstyle =$ $\displaystyle \mathbf{b}_0 + t\mathbf{v}$  

Vediamo ora cosa succede se, data una curva $\mathbf{X}(t)$, spostiamo un punto $\mathbf{b}_j$. Definiamo pertanto

\begin{displaymath}
\mathbf{\tilde{b}}_j = \mathbf{b}_j + \Delta\mathbf{v}\qquad
\mathbf{\tilde{b}}_i = \mathbf{b}_i,\ i\neq j
\end{displaymath}

Allora la curva $\mathbf{\tilde{X}}$ è definita da

\begin{displaymath}
\mathbf{\tilde{X}}(t) = \sum_{i=0}^n \mathbf{\tilde{b}}_i B_...
...\mathbf{v})B_j^n(t) = \mathbf{X}(t) + B_j^n(t)\Delta\mathbf{v}
\end{displaymath}

Tale proprietà detta controllo pseudo-locale, mostra che lo spostamento di un punto di controllo influenza tutta la curva ed in particolar modo l'intorno del punto spostato.
Figura 2.4: Spostamento di un punto del poligono di controllo di una curva di Bézier
\includegraphics[width=0.8\textwidth]{img/bezmodpeso}
Proviamo che per le curve di Bézier vale la proprietà di variation diminishing, che abbiamo già dimostrato valere per i polinomi di Bernstein. Sia

\begin{displaymath}
\mathbf{X}(t)=\sum_{i=0}^n \mathbf{b}_i B_i^n(t)
\end{displaymath}

e $r:\ \alpha x + \beta y +\gamma = 0$ una generica retta del piano. Proviamo che il numero di intersezioni ($N$) tra $\mathbf{X}(t)$ e $r$ è minore o uguale del numero di intersezioni fra il poligono di controllo e $r$, in particolare ne differisce per un numero pari. Possiamo pensare che la retta divida il piano in due semipiani ed assegnamo ad un semipiano il segno $+$ e all'altro il segno $-$. Per mostrare il numero di intersezioni della curva con la retta, mettiamo a sistema per vedere se i punti della curva soddisfano l'equazione della retta. Abbiamo che

\begin{displaymath}
\mathbf{X}(t) = \left(
\begin{array}{c}
x(t)\\
y(t)\\
\end...
..._{ix} B_i^n(t)\\
\sum_i b_{iy} B_i^n(t)\\
\end{array}\right)
\end{displaymath}

quindi

\begin{displaymath}
\alpha\sum_i b_{ix} B_i^n(t) + \beta\sum_i b_{iy} B_i^n(t) + \gamma = 0
\end{displaymath}

che possiamo scrivere come

\begin{displaymath}
\sum_i \left( \underbrace{\alpha b_{ix} + \beta b_{iy} + \gamma}_{c_i}
\right)B_i^n(t) = 0
\end{displaymath}

A questo punto possiamo utilizzare la proprietà di variation diminishing dei polinomi di Bernstein ed abbiamo verificato la proprietà cercata. Esplicitiamo ora la forma della derivata di una curva di Bézier.
$\displaystyle \mathbf{\dot{X}}(t)$ $\textstyle =$ $\displaystyle \sum_{i=0}^n \mathbf{b}_i \frac{\mathrm{d}
B_i^n(t)}{\mathrm{d}t} =$  
  $\textstyle =$ $\displaystyle n \sum_{i=0}^n \mathbf{b}_i \left( B_{i-1}^{n-1}(t) -
B_i^{n-1}(t)\right) =$  
  $\textstyle =$ $\displaystyle n \left[
B_0^n(t)(\mathbf{b}_1 - \mathbf{b}_0) + \ldots + B_{n-1}^n(\mathbf{b}_n -
\mathbf{b}_{n-1})
\right] =$  
  $\textstyle =$ $\displaystyle n\sum_{i=0}^{n-1}\Delta\mathbf{b}_i B_i^{n-1}(t)$  

La derivata espressa in quest'ultima forma prende il nome di curva hodograph. Da questa formulazione si ricava:

\begin{displaymath}
\begin{array}{ccc}
\mathbf{\dot{X}}(0) &=& n\Delta\mathbf{b}...
...
\mathbf{\dot{X}}(1) &=& n\Delta\mathbf{b}_{n-1}\\
\end{array}\end{displaymath}

Questo significa che oltre a interpolare il primo e l'ultimo punto, la curva parte ed arriva tangente al poligono di controllo. È semplice definire un'espressione per la derivata $j$-esima:

\begin{displaymath}
\mathbf{X}^{(j)}(t)=n(n-1)\ldots(n-j+1)\sum_{i=0}^{n-j}\Delta^j\mathbf{b}_i
B_i^{n-j}(t)
\end{displaymath}

Figura 2.5: Curva di Bezier e relative Hodograph
\includegraphics[width=\textwidth]{img/hodograph}

next up previous contents
Next: 2.3 Degree elevation Up: 2. Curve di Bézier Previous: 2.1 Polinomi di Bernstein   Indice
2005-02-09