Presentazione corso - Camillo Trevisan Università Iuav di Venezia
Transcript
Presentazione corso - Camillo Trevisan Università Iuav di Venezia
Spline Nurbs IUAV – Disegno Digitale Camillo Trevisan Spline e Nurbs Negli anni ‘70 e ’80 del secolo scorso nelle aziende si è iniziata a sentire l’esigenza di concentrare in un’unica rappresentazione gestita dal calcolatore tutte le attività di disegno, analisi, controllo e produzione. Il modello 3D costituisce la base di partenza di questo processo. L’obiettivo primario è pertanto di definire un algoritmo in grado di generare e controllare con facilità, velocità, completezza e accuratezza curve e superfici anche complesse. Ogni oggetto può essere scomposto in forme geometriche più semplici, divise in due categorie: classificabili e non classificabili. Alla prima categoria appartengono gli elementi della geometria classica: punti, segmenti, piani, sfere, cilindri, paraboloidi, iperboloidi ecc. Per applicazioni diverse (ad esempio l’aeronautica, la nautica, l’industria automobilistica, ma oggi anche l’architettura), sono tuttavia necessarie curve e superfici di forma ‘libera’ o free-form. IUAV – Disegno Digitale 2 Rappresentazione di una curva Una curva può essere rappresentata in forma grafica (per mezzo delle tecniche classiche del disegno e della Geometria Descrittiva) e in forma analitica, con tre diverse modalità: forma implicita, esplicita o parametrica. Esempio: ellisse, rappresentazione in forma grafica IUAV – Disegno Digitale 3 Ellisse: rappresentazione analitica Equazione implicita [f(x,y)=0]: X2 Y2 ---- + ---- - 1 = 0 a2 b2 Equazione esplicita [y=f(x)]: Y = +/- (b √(1-(X/a)2)) t Forma parametrica: X(t) = a cos(t) Y(t) = b sen(t) Con t che varia tra 0 e 2π IUAV – Disegno Digitale 4 La forma parametrica è quella utilizzata nel CAD Ad esempio, dovendo calcolare la lunghezza di un ramo di curva, usando la forma implicita o esplicita sarà necessario definire un algoritmo ad hoc in grado di effettuare il calcolo. L’algoritmo sarà appunto diverso di curva in curva: ciascuna curva richiede uno specifico algoritmo. La forma parametrica definisce invece un metodo di descrizione generalizzato per tutti i tipi di curve. Inoltre, le rappresentazioni implicite ed esplicita riguardano luoghi di punti generalmente illimitati nello spazio, mentre la rappresentazione parametrica consente di restringere l’intervallo, noto e definibile facilmente a priori, all’interno del quale far variare il parametro. Dunque, nell’esempio precedente, tutte le ellissi espresse in forma parametrica potranno essere tracciate facendo variare il parametro t tra 0 e 2π, mentre nelle altre forme i valori dipendono dai semiassi. IUAV – Disegno Digitale 5 Valori univocamente determinati e formulazione vettoriale Inoltre, riprendendo l’esempio dell’ellisse, il valore della variabile Y non è univocamente determinato: infatti può assumere, per la stessa X, il valore +(b √(1-(X/a)2)) oppure il valore -(b √(1-(X/a)2)). Nel caso di forma parametrica: X(t) = a cos(t); Y(t) = b sen(t); 0≤ t ≤ 2π Per t = 0° : cos(0) = 1 ; sen(0) = 0 → X = a; Y = 0 Per t = 90° : cos(0) = 0 ; sen(0) = 1 → X = 0; Y = b Per t = 180° : cos(0) = -1 ; sen(0) = 0 → X = -a; Y = 0 Per t = 270° : cos(0) = 0 ; sen(0) = -1 → X = 0; Y = -b Nelle trasformazioni geometriche, l’uso della rappresentazione implicita o esplicita comporta ancora una volta scelte sempre diverse, mentre l’uso della forma parametrica consente l’adozione della medesima tecnica, avendo una formulazione vettoriale. IUAV – Disegno Digitale 6 Calcolo matriciale – valori sempre definiti – passaggio dal 2D al 3D Infatti, è possibile rappresentare le coordinate di un punto della curva in forma di componenti di un generico vettore v: v(u)=[x(u), y(u)] o anche v(u)=[x(u), y(u), z(u)] nello spazio 3D potendo così sfruttare, nella gestione delle entità geometriche, i vantaggi del calcolo matriciale (ad esempio, ma non solo, nella gestione delle trasformazioni geometriche e proiettive). Inoltre la forma parametrica evita i problemi di calcolo delle pendenze che invece possono presentarsi nelle altre formulazioni. Infatti i vettori tangenti, espressi in forma parametrica, non sono mai infiniti (mentre le inclinazioni possono esserlo: tan(90°)=∞). Infine, è possibile passare dalle due dimensioni del piano alle tre dimensioni dello spazio semplicemente aggiungendo una equazione. IUAV – Disegno Digitale 7 Principali tipi di curve free-form Curve di Hermite Curve di Bézier Curve Spline Curve B-Spline Curve NURBS (Non Uniform Rational B-Spline) Due metodi tradizionali per individuare le curve: Metodo di Lagrange Metodo di Hermite IUAV – Disegno Digitale 8 Interpolazione polinomiale a tratti (blending) Le blending function sono funzioni che, come dice il nome stesso, miscelano le funzioni alle quali sono applicate in modo da dar luogo a funzioni più complesse. Ad esempio, interpolando via via gruppi di 4 punti con polinomi di grado 3, si ottengono alcuni vantaggi essenziali: - si svincola il grado del polinomio interpolante dal numero totale di punti di controllo; - si riducono di molto gli ‘errori’ di interpolazione nei tratti di curva tra un punto di controllo e l’altro; - i quattro parametri ‘locali’ di controllo (ad esempio i punti estremi e le tangenti nei due punti) rendono possibile la gestione di curve che non giacciono su di un piano ma nello spazio (1° grado [retta] → 1D, 2° grado [es. cerchio, parabola, iperbole, ellisse] → 2D, 3° grado → 3D). Tuttavia, in tal modo, si introduce un nuovo problema: come si collegheranno tra loro i vari tratti di curva? IUAV – Disegno Digitale 9 Interpolazione polinomiale a tratti (blending) Possiamo infatti considerare tre classi di continuità: IUAV – Disegno Digitale 10 Curve Spline La curva Spline è una curva composta (interpolante), formata cioè da archi di curva polinomiale che si susseguono assicurando condizioni di continuità tra un arco e l’altro. Definite, però, da un’unica espressione parametrica che tiene conto dei vincoli imposti: il passaggio per i punti imposti e la continuità tra una polinomiale e la successiva. Le Spline cubiche sono composte da tratti di polinomiale cubica con continuità nei punti intermedi. IUAV – Disegno Digitale 11 Curve B-Spline Il limite principale delle curve di Bézier e delle Spline è insito nella loro ‘globalità’, vale a dire che lo spostamento di un punto di controllo influenza tutta la curva, non consentendo modifiche localizzate nell’intorno di un punto. Inoltre, una stretta relazione lega l’ordine della curva con il numero totale dei punti di controllo. Le curve B-Spline costituiscono una naturale evoluzione dell’algoritmo di Bézier. Infatti, la principale differenza tra i due modelli consiste, per le B-Spline, nella possibilità di gestione ‘locale’ della forma della curva. Le curve B-Spline, per quanto abbiano una forma matematica pressoché identica alle curve di Bézier, si differenziano decisamente da queste ultime nella formulazione delle funzioni di miscelamento, le quali, in generale, hanno grado indipendente dal numero dei punti di controllo. Le curve B-Spline racchiudono tutte le caratteristiche delle curve di Bézier e delle Spline. Le curve B-Spline sono curve parametriche approssimanti che consentono tuttavia l’interpolazione di alcuni punti assegnati e la modellazione locale della curva. La posizione di un punto influenza solo una parte di curva, la cui ampiezza è dipendente dal grado che si vuol dare alla curva stessa (dal livello di continuità che si vuole ottenere) e non dal numero totale di punti di controllo. IUAV – Disegno Digitale 12 Curve B-Spline - Una B-Spline è una curva polinomiale a tratti perché le sue funzioni di miscelamento hanno valore zero per gran parte del loro campo di esistenza, non influenzando la curva. - Sono curve invarianti rispetto a trasformazioni affini (come, ad esempio, la prospettiva, l’assonometria e le trasformazioni geometriche). Pertanto, applicare una trasformazione affine ai punti di controllo equivale ad applicarla a tutti i punti della curva. - Le curve sono contenute nel guscio convesso definito dai punti di controllo. - Muovendo un punto di controllo cambia la curva solo nell’intervallo compreso tra il punto precedente e il successivo. - È possibile usare punti di controllo multipli per ottenere, ad esempio, cuspidi o punti angolosi. IUAV – Disegno Digitale 13 Curve NURBS Purtroppo, nonostante la notevole generalizzazione delle B-Spline, queste restano funzioni polinomiali e, in quanto tali, non possono riprodurre esattamente molte forme, tra le quali alcune semplici come le coniche, espresse in forma parametrica come rapporti. Una ulteriore generalizzazione delle B-Spline è data dalle NURBS (Non Uniform Rational B-Spline). Il ‘non uniform’ si riferisce al vettore dei nodi (intervalli dei parametri non uniformi), mentre ‘rational’ si riferisce appunto al fatto che le funzioni di miscelamento sono definite come rapporti razionali di funzioni base B-Spline. IUAV – Disegno Digitale 14