Approfondimenti sulle proprieta matematiche
Ci siamo lasciati nella puntata precedente con l’equazione generale delle curve di Bezier, che si costruisce, come abbiamo visto, mediante i polinomi di Bernstein.
Nelle seguenti immagini (fonte linuxtopia.org: articolo) viene mostrato come si possono usare le curve di Bezier per selezionare parte di un immagine con il software di fotoricco Gimp (clicca per ingrandire).
Vediamo ora alcune proprietà matematiche fondamentali.
Valgono le seguenti proprietà :
I polinomi di Bernstein
- sono positivi: $$B_k^N(t)\ge 0$$;
- sono simmetrici: $$B_k^N(t) = B_k^N(1-t)$$;
- sono ricorsivi: $$B_k^N(t) = (1-t)B_k^{N-1}(t) + tB_k^{N-1}(t) $$;
- hanno derivata tale che: $$\frac{dB_k^{N}(t)}{dt}=n(B_{j-1}^{N-1}(t)+B_{j}^{N-1}(t)) $$
e tali proprietà valgono $$\forall t\in [0,1] $$. Queste proprietà sono utili per dimostrare alcuni fatti notevoli sulle curve di Bezier. Ad esempio, senza entrare nei dettagli
- se una curva di Bezier \`e individuata da un insieme di punti, allora essa \`e contenuta interamente nell’inviluppo convesso dei punti dati;
- se $$\gamma_{P_0,\dots,P_N}(t)$$ \`e una curva di Bezier per i punti $$\{P_0,\dots,P_N\}$$, allora $$\gamma_{P_0,\dots,P_N}(1)=P_0$$ e $$\gamma_{P_0,\dots,P_N}(1)=P_N$$;
- i vettori tangenti alla curva $$\gamma_{P_0,\dots,P_N}(t)$$ nei punti $$P_0$$ e $$P_N$$ sono dati da $$\gamma_{P_0,\dots,P_N}(0)^{‘}=n(P_1-P_0)$$ e $$\gamma_{P_0,\dots,P_N}(t)^{‘}=n(P_{N}-P_{N-1})$$;
Le proprietà che abbiamo elencato sono fondamentali per poter costruire oggetti in computer grafica. In particolare le proprietà sui vettori tangenti determinano il modo in cui la curva cambia al variare del numero di punti di controllo. Naturalmente chi utilizza lo strumento per disegnare curve di Bezier nei software di fotoritocco si deve interessare molto poco delle proprietà matematiche di tali oggetti, tuttavia, pur non conoscendo gli aspetti algoritmici, intuitivamente il designer sfrutta tutte le proprietà elencate per i suoi scopi.
Questo video mostra delle animazioni sulle curve di Bezier cubiche:
Cubic Bezier Curves – Under the Hood from Peter Nowell on Vimeo (questo il link diretto: https://vimeo.com/106757336).
Questa pagina mostra 4 animazioni con le curve di Bezier:
https://www.jasondavies.com/animated-bezier/.
Generalizzazioni
Quando viene introdotto un nuovo concetto in matematica, si cercano sempre sue possibili generalizzazioni. Nel caso delle curve di Bezier è naturale per un matematico chiedersi se esistano degli oggetti simili in dimensioni maggiori: la risposta è si. Si tratta delle cosiddette superfici di Bezier. Il concetto di base è sempre lo stesso: si cerca di trovare una superficie che passi per un certo numeri di punti disposti nello spazio e si richiede, come nel caso delle curve, che la superficie sia “liscia” e non presenti spigoli o variazioni troppo brusche.
La costruzione di una tale superficie passa ancora attraverso i polinomi di Bernstein. Si scelgono un certo numero di punti $$\mathbf{P}_{i,j}$$ nello spazio; la superficie di Bezier passante per i punti $$P_{i,j}$$ e data dall’equazione parametrica
$$p(u,v)=\sum_{i=0}^{n}\sum_{j=0}^{m}B_i^n(u)B_j^m(v)\mathbf{P}_{i,j}$$
dove $$p(u,v)$$ sono le coordinate dei punti della superficie al variare dei parametri $$u,v$$ che qui svolgono il ruolo del parametro $$t$$ all’interno della definizione dei due polinomi di Bernstein $$B_i^n(u)$$ e $$B_j^m(v)$$.
Questa immagine (fonte Wikipedia) rappresenta le potenzialita delle superficie di Bezier per creare modelli 3D:
E’ disponibile online un sito web che permette di “giocare” con le curve di Bezier. Il sito web è il seguente: The Bezier Game.
Sperando di non avervi tediato troppo con la matematica, se avete voglia di mettere in pratica tutto quello che avete letto (e fregarvene degli algoritmi) potete tranquillamente scaricare il software gratuito (e open source) Gimp e seguire uno degli innumerevoli tutorial disponibili online per imparare ad usare lo strumento “Curve di Bezier”. Alla prossima!
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Ancora nessun commento