Introduzione

La nostra prima domanda è: perché abbiamo bisogno di nuove forme di curve parametriche? Una risposta immediata è che le curve parametriche discusse in precedenza non sono molto geometriche. Più esattamente, data una tale forma parametrica non è facile conoscere la geometria che ne sta alla base senza una ulteriore analisi. I coefficienti delle equazioni non hanno alcun significato geometrico e risulta praticamente impossibile predirre il cambiamento di una forma dovuto alla variazione di uno o più coefficienti. Pertanto disegnare una curva che segua certi schemi risulta difficoltoso.

Nella pratica i disegnatori o gli utenti non si preoccupano della matematica (e quindi delle equazioni) che sono alla base di una curva. Essi si concentrano più o meno sullo svolgimento del proprio lavoro. Pertanto un sistema che voglia essere di ausilio agli utenti nel disegnare curve deve risultare

  1. Intuitivo:
    Ci si aspetta che ogni passo ed ogni algoritmo abbia un'interpretazione intuitiva e geometrica.
  2. Flessibile:
    Il sistema dovrebbe fornire agli utenti un maggiore controllo per il disegno e la modifica della forma di una curva. La creazione e modifica di una curva dovrebbero essere semplici, intuitive e geometriche, piuttosto che avvenire manipolando equazioni.
  3. Approccio unificato:
    Il modo di rappresentare, creare e modificare tipi differenti di curve (per esempio linee, coniche, sezioni di coniche e cubiche) deve essere uguale. Vale a dire non deve richiedere strumenti diversi per manipolare curve differenti (per esempio coniche e cubiche).
  4. Invariante:
    La curva rappresentata non dovrà modificare la sua geometria a seguito di trasformazioni geometriche quali la traslazione, la rotazione e le trasformazioni affini.
  5. Efficienza e stabilità numerica: Un utente di un sistema di disegno può non curarsi della bellezza della geometria alla base, tuttavia sia aspetta che fornisca la curva desiderata in modo veloce ed accurato. Inoltre una grande quantità di calcoli non deve "distorcere" la forma della curva (stabilità numerica).

Quest'unità si concentra su alcune tecniche per il disegno di curve in grado di soddisfare i criteri su menzionati. In questa sezione descriveremo le curve di Bézier; nelle successive due le curve B-spline e NURBS. Il tema unificante di tali tecniche presenta i seguenti vantaggi:

  1. Un utente schematizza un insieme di punti di controllo per il sistema per generare una curva che più o meno segue l'andamento dei punti di controllo.
  2. Un utente può modificare le posizioni di alcuni punti di controllo e di altre caratteristiche per variare la forma della curva. Non è richiesta nessuna equazione, dal momento che solitamente l'equazione di una curva non viene memorizzata..
  3. Se necessario, un utente può aggiungere punti o altre informazioni vitali senza modificare la forma della curva. In questo modo l'utente ha una maggiore libertà di modificare una curva, in quanto l'aggiunta di punti di controllo aumenta i gradi di libertà della curva..
  4. Un utente può persino spezzare una curva in due parti per effettuare "micro" modifiche e poi unirli di nuovo in un'unica parte..
  5. Esistono algoritmi molto geometrici, intuitivi e stabili numericamente per individuare i punti sulla curva senza conoscere l'equazione della curva.
  6. Una volta che la teoria sulle curve è nota, la transizione alle superfici non è complicata, dal momento che ciò che si appreso per le curve si applica in modo diretto alle superfici.

Cominceremo con le curve fondamentali della toeria: le curve di Bézier. Esse furono scoperte contemporaneamente da Paul de Casteljau alla Citroen e Pierre E. Bézier alla Renault attorno alla fine degli anni '50 ed inizio degli anni '60. Le splines base, abbreviate come B-splines, furono conosciute e studiate da N. Lobachevsky il cui contrubuto maggiore è probabilmente la cosiddetta geometria iperbolica (non Euclidea) alla fine del XVIII secolo.. Tuttavia seguiremo una trattazione più moderna dovuta a C. de Boor, M. Cox e L. Mansfield alla fine degli anni '70. Da notare che le curve di Bézier sono una caso speciale di B-splines..

Sia le curve di Bézier che le B-splines sono curve parametriche polinomiali. Come discusso in precedenza, le forme parametriche polinomiali non possono rappresentare alcune forme semplici quali il cerchio. Pertanto le curve di Bézier e le B-splines possono solo rappresentare quello che le forme parametriche polinomiali permettono. Introducendo coordinate omogenee che le rendono razionali, le curve di Bézier e le B-splines si generalizzano in curve razionali di Bézier e Non-Uniform Rational B-splines, or NURBS in breve. Ovviamente le curve razionali di Bézier sono più potenti delle curve di Bézier dal momento che le prime possono rappresentare cerchi ed ellissi. Analogamente le NURBS sono più potenti delle B-splines. La relazione tra questi quattro tipi di rappresentazioni di curve è mostrata nella figura di seguito.