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