Introduzione alle curve di Bézier
Transcript
Introduzione alle curve di Bézier
Introduzione alle curve di Bézier Alessandra Sestini March 16, 2015 1 Polinomi di Bernstein Introduciamo la base polinomiale di Bernstein in quanto essa è lo standard utilizzato nel CAGD per la rappresentazione di curve parametriche polinomiali. I polinomi di Bernstein di grado n sono n + 1 e sono definiti come segue 1 , n n Bi (t) := ti (1 − t)n−i , i = 0, . . . , n, (1) i n n! . dove indica il coefficiente binomiale i! (n−i)! i Tali polinomi costituiscono una base per lo spazio Πn dei polinomi di grado ≤ n. Infatti, mediante lo sviluppo del binomio di Newton di (1 − t)n−i , si ricava facilmente la seguente formula, Bin (t) = n i X n−i j=0 n−i j (−1)n−i−j tn−j , i = 0, . . . , n. Quindi, usando una notazione matriciale, è possibile esprimere i polinomi di Bernstein in termini della base canonica 1, t, . . . , tn come segue, B0n (t) 1 .. . (2) . = A .. , n n Bn (t) t 1 Si osserva che, per comodità di notazione nel seguito si considerano definiti e pari identicamente a 0 anche Bin (t), i < 0 e Bin (t), i > n. 1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figure 1: Grafico in [0 , 1] dei 4 polinomi di Bernstein cubici. dove A è una matrice di dimensione (n + 1) × (n + 1)che risulta triangolare n superiore 2 e con elementi diagonali non nulli, Ai,i = . Ogni polinomio i p ∈ Πn può quindi essere rappresentato in modo univoco per mezzo dei suoi coefficienti ci , i = 0, . . . , n in tale base che vengono detti coefficienti di Bézier, p(t) = n X ci Bin (t). (3) i=0 I polinomi di Bernstein godono di proprietà importanti che rendono attraente il loro impiego sia dal punto di vista del controllo geometrico sia da quello della affidabilità del calcolo in aritmetica finita. Elenchiamo nel seguito tali proprietà P1, partizione dell’ unità, n X Bin (t) ≡ 1; i=0 2 Si osservi che la matrice A (cambiamento di base dai monomi ai polinomi di Bernstein) non è nonnegativa e che invece è possibile dimostrare che lo è la sua inversa (sempre triangolare superiore), vedi Esercizio 1. 2 P2, non negatività in [0 , 1], Bin (t) ≥ 0, t ∈ [0 , 1], i = 0, . . . , n, ∀n ∈ IN, P3, cardinalità in 0 e 1, Bin (0) = 1 Bin (1) = se i = 0, i = 0, . . . , n 0 altrimenti, 1 se i = n, i = 0, . . . , n 0 altrimenti. P4, unimodalità in [0 , 1], Bin (t) ha un unico punto stazionario in (0 , 1) che è punto di massimo. i n ed esso è un P5, recursività, n−1 Bin (t) ≡ (1 − t)Bin−1 (t) + tBi−1 (t), i = 0, . . . , n. Osserviamo che P2, P3 e P4 discendono immediatamente dalla definizione (1). La dimostrazione della identità riportate in P1 e P5 può essere fatta facilmente per induzione su n ed è lasciata per esercizio. Esaminiamo qui invece le implicazioni che ha questo primo gruppo di proprietà sul legame fra ogni p ∈ Πn e i suoi coefficienti di Bézier. Pn n P1 intanto implica che, se p2 (t) = ap1 (t) + b, a, b ∈ IR, p1 (t) = i=0 ci Bi (t), allora n X p2 (t) = (aci + b) Bin (t). i=0 P1 e P2 implicano che, ∀t ∈ [0 , 1] p(t) è una combinazione convessa dei suoi coefficienti di Bézier, c0 , . . . , cn . Ne consegue che p(t) ∈ CH{c0 , . . . , cn } = [ min ci , max ci ], ∀t ∈ [0 , 1]. i=0,...,n i=0,...,n (4) P3 implica che i coefficienti di Bézier di indici estremi vengono riprodotti esattamente da p(t) agli estremi dell’intervallo [0 , 1], cioé p(0) = c0 , p(1) = cn . 3 (5) P4 implica la pseudolocalità dei coefficienti di Bézier. Infatti, osserviamo che se il coefficiente ci in (3) viene modificato, ci → c̃i = ci +δci , il corrispondente nuovo polinomio p̃(t) cambia in tutti i punti dell’intervallo [0 , 1] in quanto p̃(t) = p(t) + δci Bin (t). Tuttavia in ni si ha il massimo della variazione di |p̃(t) − p(t)| e quindi si parla di pseudolocalità. Esercizio 1. Si dimostrino le seguenti identità, k n X j Bkn (t) , j = 0, . . . , n . tj ≡ n k=j j (suggermento: si moltiplichi tj per 1 = [t + (1 − t)]n−j svisuppando questo fattore con il binomio di Newton). Si osservi che tali identità implicano la nonnegatività dell’inversa della matrice A introdotta all’inizio del paragrafo. Un’altra importante proprieta dimostrata nel seguente paragrafo è costituita dal fatto che si può provare che i polinomi di Bernstein formano un sistema di funzioni strettamente totalmente positivo su (0 , 1). Essa avrà un’ importante implicazione, che consiste nella possibilità di maggiorare il numero di variazioni di segno di un polinomio in (0 , 1). Vedremo poi in Sezione 3 la successiva conseguenza geometrica per le curve di Beziér. 1.1 Condizionamento della valutazione di un polinomio Considerando il condizionamento del problema della valutazione di un polinomio P ∈ Πn in un punto, siamo interessati a stimarne la variazione |P̃ (t) − P (t)| per t fissato in un certo intervallo [a , b] (assoluta in quanto potrebbe anche essere P (t) = 0) che è prodotta da perturbazioni sui suoi coefficienti in una base di Πn fissata. Siano quindi φ0 , · · · , φn , (n + 1) polinomi di grado minore o uguale a n che costituiscono una base di Πn . Posto Φ := (φ0 , · · · , φn )T , un generico altro polinomio P ∈ Πn si può allora univocamente rappresentare in tale base, P (t) = cT Φ(t) , dove c := (c0 , . . . , cn )T è il vettore le cui componenti sono i coefficienti del polinomio nella base scelta. Se ora si perturbano questi coefficienti, c̃i = ci (1 + i ) , 4 i = 0, . . . , n , se si suppone che :: maxni=0 |i | , posto P̃ (t) = c̃T Φ(t), con c̃ := (c̃0 , . . . , c̃n )T , si ha |P̃ (t) − P (t)| ≤ KΦ (P, t) , dove si è posto KΦ (P, t) := n X |ci | |φi (t)| i=0 che è quindi il numero di condizionamento del problema. Osserviamo quindi che, fissato il polinomio P e il punto di valutazione t, a parità di massima perturbazione relativa sui suoi coefficienti in basi diverse di Πn , la perturbazione sul valore P (t) in generale varia al variare della base. Notiamo anche che sePla base utilizzata risulta non negativa in [a , b], allora si ha KΦ (P, t) = ni=0 |ci | φi (t) , che in forma più compatta si scrive KΦ (P, t) = |c|T Φ(t) , (6) dove |c| := (|c0 |, . . . , |cn |)T . Sorge quindi spontaneo confrontare da questo punto di vista la base dei monomi che è quella usualmente utilizzata con la base di Bernstein. La seguente proposizione ci sarà utile a tale scopo. Proposizione 1. Siano φ0 , . . . , φn e ψ0 , . . . , ψn due basi di Πn entrambe nonnegative in [a , b]. Se la matrice F del cambiamento di base da Φ a Ψ := (ψ0 , . . . , ψn )T , ossia la matrice tale che ∀t risulta Ψ(t) = F Φ(t), è nonnegativa, allora per ogni polinomio P di Πn e per ogni t ∈ [a , b] si ha che KΦ (P, t) ≤ KΨ (P, t) . Dimostrazione : Dato P ∈ Πn , sia P (t) = cT Φ(t) = aT Ψ(t). Usando il cambiamento di base si ottiene facilmente che c = FT a. Usando laP disuguaglianza triangolare, per la nonnegatività di F si ha allora che |ci | ≤ nj=0 Fi,j |aj | , ∀i = 0, . . . , n che in forma vettoriale si può scrivere |c| ≤ F T |a| . Quindi dalla definizione di numero di condizionamento in (6) valida per basi nonnegative si ottiene che KΦ (P, t) = |c|T Φ(t) ≤ |a|T F Φ(t) = |a|T Ψ(t) = KΨ (P, t) , 5 che dimostra l’asserto. Ora abbiamo visto all’inizio del paragrafo che la matrice del cambiamento di base da polinomi di Bernstein a monomi risulta nonegativa (vedi nota). Quindi, lavorando in [0 , 1] dove entrambe le basi sono non negative si deduce che il numero di condizionamento K relativo alla base di Bernstein risulta minore di quello relativo alla base dei monomi. Nel caso di un intervallo [a , b] qualsiasi stesso confronto si può fare fra la base Mi (x) := (x − a)i , i = 0, . . . , n , (b − a)i e la base di Bernstein generalizzata, 1 n n (x − a)i (b − x)n−i , i = 0, . . . , n , Bi (x) := n i (b − a) che sono entrambe nonnegative in [a , b]. 2 Sistemi di funzioni totalmente positivi Prima di definire un sistema di funzioni totalmente positivo su un certo intervallo I ⊂ IR abbiamo bisogno di alcune definizioni e di qualche risultato preliminare nell’ambito dell’algebra lineare. Definizione 1. Siano k ed n due interi con k ≤ n. Indicheremo con Qk,n il seguente insieme di multiindici a k componenti, Qk,n := {α = (α1 , . . . , αk )T ∈ INk | 1 ≤ α1 < · · · < αk ≤ n} . Un multiindice α ∈ Qk,n può essere quindi pensato come una struttura utile a stabilire come estrarre k righe (colonne) da una matrice avente in tutto n righe (colonne). Proseguendo in questo utilizzo, data quindi una matrice A ∈ IRn×m e α ∈ Qk,n , β ∈ Qk,m (dove k ≤ min{n , m}), indicheremo con A[α|β] la sottomarice quadrata k × k definita come segue, aα1 ,β1 , · · · , aα1 ,βk .. .. .. . A[α|β] := . . . aαk ,β1 , · · · , aαk ,βk 6 Definizione 2. Dicesi minore di ordine k di una matrice A ∈ IRn×m il determinante di una sua qualunque sottomatrice quadrata A[α|β], α ∈ Qk,n , β ∈ Qk,m , k ≤ min{n , m} . Definizione 3. A ∈ IRn×m dicesi totalmente positiva di ordine k, con k ≤ min{n , m}, e si scrive A ∈ T Pk , se tutti i suoi minori di ordine ≤ k sono nonnegativi. Definizione 4. A ∈ IRn×m dicesi strettamente totalmente positiva di ordine k, k ≤ min{n , m}, e si scrive A ∈ ST Pk , se tutti i suoi minori di ordine ≤ k sono positivi. Definizione 5. A ∈ IRn×m dicesi totalmente positiva e si scrive A ∈ T P se tutti i suoi minori di ordine ≤ min{n , m}, sono nonnegativi. Definizione 6. A ∈ IRn×m dicesi strettamente totalmente positiva e si scrive A ∈ ST P se tutti i suoi minori di ordine ≤ min{n , m}, sono positivi. A riguardo di queste matrici si enunciano il seguente lemma, detto lemma di Fekete, e il successivo teorema, Lemma 1. A ∈ IRn×m è STP sse sono positivi tutti i minori delle sue sottomatrici quadrate A[α|β] con α ∈ Qk,n , β ∈ Qk,m , k ≤ min{n , m}, tali che αi+1 = αi + 1, βi+1 = βi + 1 , i = 1, . . . , k − 1 . Teorema 1. A ∈ IRn×m è TP sse essa è fattorizzabile nel prodotto di matrici bidiagonali nonnegative a banda di ampiezza 1. Notiamo che tale teorema implica che il prodotto di due matrici TP è ancora una matrice TP. Tenendo presente il precedente teorema possiamo inoltre dimostrare il seguente, Teorema 2. Se A ∈ IRn×m è TP allora, ∀v ∈ IRm , risulta S − (Av) ≤ S − (v) , dove S − (v) indica il numero di variazioni di segno nel vettore v. Dimostrazione : Osserviamo che, grazie al teorema precedente, è sufficiente dimostrare l’asserto solo per il caso in cui A sia bidiagonale a banda di 7 ampiezza 1, ossia esista ` ∈ Z tale che Ai,j 6= 0 sse j−i = l oppure j−i = l+1. Siano allora {ṽi } e {z̃i } due sequenza infinite tali che vi se 1 ≤ i ≤ m , (Av)i se 1 ≤ i ≤ n , ṽi := z̃i := 0 altrimenti. 0 altrimenti. Osserviamo che si può scrivere z̃i = Ai,i+` ṽi+` + Ai,i+`+1 ṽi+`+1 . Ora, essendo A TP per ipotesi, essa necessariamente è nonnegativa e quindi, dalla formula precedente segue che se ṽi e ṽi+1 sono concordi, z̃i−` ha il loro segno. A partire da queste due sequenze, definiamo allora una terza sequenza, {w̃i } come segue, w̃2i := ṽi , w̃2i+1 := z̃i−` , Per come risulta definita quest’ultima sequenza e per quanto detto prima, si deduce che se w̃2i e w̃2i+2 hanno lo stesso segno, ha il loro segno anche w̃2i+1 . Quindi S − (w̃) = S − (ṽ) = S − (v). Per come è definita la sequenza z̃, risulta naturalmente S − (Av) = S − (z̃) e, essendo z̃ una sottosequenza (infinita) di w̃, risulta anche S − (Av) = S − (z̃) ≤ S − (w̃) . Se ne deduce quindi la tesi. Definizione 7. Sia I un intervallo della retta reale e sia (u0 , · · · , un ) un sistema di funzioni su I assegnate, ui : I → IR, i = 0, . . . , n. Presi ti ∈ I, i = 0, . . . , m con t0 < · · · < tm , la seguente matrice M ∈ IR(m+1)×(n+1) dicesi matrice di collocazione del sistema (u0 , · · · , un ) nelle ascisse t0 , . . . , tm , u0 (t0 ) · · · un (t0 ) u0 · · · un .. .. .. M =M := (7) . . . . t0 · · · tm u0 (tm ) · · · un (tm ) Definizione 8. Un sistema di funzioni (u0 , · · · , un ) su I dicesi T Pk (ST Pk ), k ≤ u0 · · · un n+1 , se ogni sua matrice di collocazione M con ti ∈ I, t1 < t1 · · · tk · · · < tk è T Pk (ST Pk ). Definizione 9. Un sistema di funzioni ) su I dicesi T P (ST P ) se (u0 , · · · , un u0 · · · un ogni sua matrice di collocazione M con ti ∈ I, t0 < · · · < tn t0 · · · tn è T P (ST P ). 8 Osservazione 1. Se (u0 , · · · , un ) è un sistema di funzioni T P su I, allora ui (t) ≥ 0, ∀t ∈ I, i = 0, . . . , n. Vediamo alcune semplici proprietà di un sistema di funzioni T P su I. 1. Composizione con funzione crescente. Se (u0 , · · · , un ) è un sistema di funzioni T P su I e f è una funzione crescente definita su un altro intervallo J di IR e a valori in I, allora anche (v0 , · · · , vn ) è un sistema di funzioni T P su J, dove vi := ui ◦ f, i = 0, . . . , n. 2. Prodotto con funzione positiva. Se (u0 , · · · , un ) è un sistema di funzioni T P su I e f : I → IR è tale che f (t) > 0∀t ∈ I, allora anche (v0 , · · · , vn ) è un sistema di funzioni T P su I, dove vi (t) := ui (t)f (t), i = 0, . . . , n. 3. Prodotto con matrice T P. Se (u0 , · · · , un ) è un sistema di funzioni T P su I e A ∈ IR(n+1)×(n+1) è una matrice T P, allora anche (v0 , · · · , vn ) è un sistema di funzioni T P su I, dove (v0 (t), · · · , vn (t))T = A(u0 (t), · · · , un (t))T . Esercizio 2. Dimostrare le proprietà 1,2 e 3 per un sistema di funzioni T P su I. Definizione 10. Data una funzione f : I → IR, la seguente quantità S − (f ) dicesi numero di variazioni di f su I, S − (f ) := supm∈IN sup{S − ((f (x0 ), · · · , f (xm )) , x0 < · · · < xm , xi ∈ I} Il seguente teorema permette di maggiorare S − (f ) quando f è combinazione lineare di un sistema di funzioni T P su I. Teorema 3. Sia (u0 , · · · , un ) un sistema di funzioni T P su I e sia f una loro combinazione lineare, f (t) = u(t)T a , dove a ∈ IRn+1 e dove si è posto u(t) := (u0 (t), · · · , un (t))T . Allora S − (f ) ≤ S − (a) . 9 Dimostrazione : Sia m ∈ IN e siano x0 < · · · < xm , m + 1 punti distinti ma arbitrari appartenenti ad I. Posto f = (f (x0 ), · · · , f (xm ))T , per definizione si ha che u0 · · · un f = M a. x0 · · · xm Ora per ipotesi sappiamo che M è T P e quindi S − (f ) ≤ S − (a) . Per l’arbitrarietà delle ascisse scelte in I e di m, segue la tesi. Il seguente corollario del precedente teorema ne costituisce un’importante conseguenza geometrica, Corollario 1. Sia (u0 , · · · , un ) un sistema di funzioni T P su I che formano anche una partizione dell’unità. Ogni curva parametrica piana X(t) definita mediante il poligono di controllo associato a (n + 1) punti di controllo assegnati Qi , i − 0, . . . , n, X(t) := n X Qi ui (t) , t∈I, i=0 interseca una qualsiasi retta r del piano un numero di volte minore o uguale al numero di intersezioni fra r e il poligono stesso. La dimostrazione è lasciata per esercizio. Data la notevole portata del teorema e del corollario precedente, in grafica siamo particolarmente interessati a lavorare con basi di spazi di funzioni prefissati che formino un sistema T P. Riferendoci per il momento allo spazio dei polinomi Πn , facciamo prima vedere che la base dei monomi 1, t, · · · , tn forma un sistema ST P in (0 , +∞) e poi che la base di Bernstein forma un sistema ST P in (0 , 1). Teorema 4. La base dei monomi 1, t, · · · , tn di Πn forma un sistema ST P su (0 , +∞) . Dimostrazione : Dobbiamo dimostrare che, se 0 < t0 < · · · < tm , la matrice M che colloca la base dei monomi in queste ascisse risulta ST P, dove 1 · · · tn0 .. . M = ... ... . n 1 · · · tm 10 Per il lemma di Fekete sappiamo che ciò è vero se sono positivi tutti i determinanti di sottomatrici quadrate di M (r+1)×(r+1), r ≤ n ottenute estraendo da M r + 1 righe e colonne successive e quindi del tipo della seguente Mr , tki · · · tr+k i .. .. . Mr := ... . . r+k k ti+r · · · ti+r Ma essendo Mr = Dr Vr con Dr = diag(tki , · · · , tki+r ) e con Vr matrice di Vandermonde relativa alle ascisse ti , . . . , ti+r , risulta det(Mr ) = det(Dr ) det(Vr ) . La tesi consegue osservando Y che det(Dr ) > 0 essendo ti > 0 e anche det(Vr ) > (tj − tk ) . 0, essendo det(Vr ) = j>k≥i Teorema 5. La base dei polinomi di Bernstein Bin (t), i = 0, . . . , n di Πn forma un sistema ST P su (0 , 1). Dimostrazione : Dobbiamo dimostrare che, se 0 < t0 < · · · < tm < 1, la matrice M che colloca i polinomi di Bernstein in queste ascisse risulta ST P. Ma ricordando la definizione dei polinomi di Bernstein, si può fattorizzare M in M = D1 G D2 , con D1 = diag((1 − t0 )n , · · · , (1 − tm )n ) , τ00 · · · τ0n .. .. , G = ... . . D2 0 n τm · · · τm n n = diag( ,··· , ), 0 n dove nella definizione di G si è posto τi := ti /(1 − ti ) . Di conseguenza, il determinante di una qualsiasi sottomatrice quadrata M [α, β], k × k di M sarà dato dal prodotto fra k elementi diagonali di D1 , k elementi diagonali di D2 e il determinante della sottomatrice G[α, β] di G. Essendo Di , i = 1, 2 entrambe diagonali a elementi diagonali positivi e G ST P in (0 , +∞), segue che tale determinante è positivo. 11 3 Curve di Beziér Una curva di Beziér di grado n è una curva parametrica polinomiale X : [0 , 1] → Ed definita come segue X(t) = n X Qi Bin (t) , t ∈ [0 , 1] , (8) i=0 dove i Qi , i = 0, . . . , n formano un set assegnato di punti ordinati. Tali punti si dicono punti di controllo e si assegnano dando le loro coordinate cartesiane in un sistema di riferimento prefissato nel piano (se siamo interessati a definire una curva di Beziér piana) o nello spazio. La spezzata che li congiunge dicesi poligono di controllo. Dalle proprietà dei polinomi di Bernstein è facile derivare le seguenti proprietà della curva di Beziér definita in (8) , PG1, invarianza per trasformazioni affini Se T : E d → E d è una trasformazione affine (ossia tale che T (P) = AP + b con A e b rispettivamente matrice e vettore che definiscono la trasformazione affine), allora T (X(t)) = n X T (Qi ) Bin (t) , t ∈ [0 , 1] . i=0 PG2, convex hull ∀t ∈ [0 , 1] , si ha che X(t) ∈ CH(Q0 , · · · , Qn ) , dove CH(Q0 , · · · , Qn ) denota la convex hull dei punti di controllo, ossia l’unione di tutte le loro possibili combinazioni convesse. PG3, end–point interpolation X(0) = Q0 , X(1) = Qn . PG4, controllo pseudo–locale Se per un certo j risulta Q̃j = Qj + ∆q e, Q̃i = Qi , per i 6= j, detta X̃(t) la curva di Beziér relativa ai punti di controllo Q̃i , i = 0, . . . , n, risulta X̃(t) − X(t) = Bjn (t) ∆q , 12 ossia la curva risulta modificata ∀t ∈ (0 , 1) e lo spostamento in ogni t è parallelo allo spostamento fatto sul punto di controllo e ha la lunghezza massima in t = j/n. PG5, variation–diminishing Se X(t) è una curva di Beziér piana, il numero di intersezioni che essa ha con una qualsiasi retta del piano è minore o uguale al numero di intersezioni che tale retta ha con il suo poligono di controllo. Inoltre, considerando che dBin n−1 (t) = n Bi−1 (t) − Bin−1 (t) , dt è possibile verificare che la derivata X0 (t) pu ò essere scritta come segue X0 (t) = n n−1 X (Qi+1 − Qi ) Bin−1 (t) , (9) i=0 dalla quale discende che in particolare (tangenza agli estremi al poligono di controllo) X0 (0) = n (Q1 − Q0 ) , X0 (1) = n (Qn − Qn−1 ) . Inoltre dalla proprietà recursiva dei polinomi di Bernstein discende la legittimità dell’uso del seguente algoritmo detto Algortmo di de Casteljau, per la valutazione di una curva di Beziér in un punto t, X(t) = bn0 (t) , dove, b0i (t) = Qi , i = 0, . . . , n , bri (t) = (1 − t)bir−1 (t) + tbr−1 (t) , i = 0, . . . , n − r, r = 1, . . . , n . i+1 Osservazione 2. Osserviamo che è sempre possibile elevare di grado una curva di Beziér, ossia scriverla in termini di polinomi di Bernstein di grado maggiore. In particolare, moltiplicando X(t) come scritta in (8) per 1 = [(1 − t) + t] e manipolando algebricamente quanto si ottiene si dimostra che si può utilizzare il seguente algoritmo di degree elevation, X(t) = n+1 X ci Bin+1 (t) , i=0 13 dove n+1−i i Qi−1 + Qi , i = 0, . . . , n + 1 , n+1 n+1 dove si assume per comodità Q−1 = Qn+1 = 0. Si osservi che in generale le l’operazione inversa di degree reduction non è invece fattibile (almeno esattamente). ci = Esercizio 3. Si individui un modo costruttivo per stabilire quale è il grado effettivo di una curva di Beziér associata a un dato poligono di controllo. Oltre che poter essere elevata di grado, una curva di Beziér può essere suddivisa (algoritmo di suddivisione), ossia, scelto τ ∈ (0 , 1) è possibile rappresentare le due restrizioni XL (ξ) = X(ξ), ξ ∈ [0 , τ ] e XR (ξ) = X(ξ), ξ ∈ [τ , 1] della curva definita in (8) in forma di Beziér L X (ξ) = n X ξ QLi Bin ( ) , τ i=0 R X (ξ) = n X n QR i Bi ( i=0 ξ−τ ), 1−τ dove QLi = bi0 (τ ) , n−i QR (τ ) , i = 0, . . . , n , i = bi dove si è utilizzata la notazione dell’algoritmo di de Casteljau. Tale fatto può essere dimostrato formalmente osservando che si può scrivere bri (t) = [(1 − t)I + tE]r Qi , dove il simbolo I denota l’operatore identità e il simbolo E l’operatore di shift. 3.1 Continuità classica e geometrica fra curve di Beziér Consideriamo due curve parametriche C(ξ), ξ ∈ [a , b] e D(η), η ∈ [c , d] differenziabili fino all’ordine m e che si connettono in un punto P ossia tali che C(b) = D(c) = P. Definizione 11. Diremo che le curve C e D si connettono con continuità classica C k , k ≤ m, in P se risulta dj D dj C (b) = (c) , j = 0, . . . , k . dj ξ dj η 14 In pratica stiamo considerando quindi η = ξ + (c − b) e semplicemente vediamo la funzione D(η) come un prolungamento di C(ξ). Parlando di curve parametriche questo però non è necessario in quanto siamo interessati a studiare il raccordo in P fra le due immagini di C e D (ossia fra le due vere e proprie curve). Introduciamo allora il concetto di continuità geometrica Gk , Definizione 12. Diremo che le curve C e D si connettono con continuità geometrica Gk , k ≤ m, in P se esiste una riparametrizzazione ammissimile (ossia strettamente monotona) w = w(η) : [c , d] → [e , f ] per D, tale che dj D dj C (b) = (e) , j = 0, . . . , k . dj ξ dj w In particolare abbiamo focalizzato l’attenzione su G1 e G2 , osservando che G1 significa chedere che esista uno scalare ω1 > 0 tale che dC dD (b) = ω1 (b) , dξ dη (10) la qual cosa corrisponde alla continuità del versore tangente alla curva in P. Inoltre abbiamo osservato che G2 corrisponde a chiedere oltre a (10) che esista un secondo scalare ω2 tale che 2 dD d2 C 2 d D (b) = ω (b) + ω2 (b) ., 1 2 2 dξ dη dη (11) la qual cosa corrisponde a richiedere la continuità del versore tangente alla curva, del Frenet frame e della curvatura in P. Vediamo quindi come si formulano in termini di restrizioni sui poligoni di controllo le condizioni di raccordo C k e Gk , k = 1, 2 quando le curve coinvolte sono curve di Beziér (che senza perdita di generalità si possono considerare Pdello stesso grado), dove P si assume quindi [a , b] = [c , d] = [0 , 1] e C(ξ) = ni=0 ci Bin (ξ), D(η) = ni=0 di Bin (η), con cn = d0 = P. Per quanto riguarda i raccordi C 1 e G1 , utilizzando (9), si ottiene rispettivamente che deve essere ∆bn−1 = ∆c0 , (12) per C 1 e ∆bn−1 = ω1 ∆c0 , 15 (13) per G1 , dove ∆ indica l’operatore differenza e ω1 un qualsiasi scalare positivo. Analogamente il raccordo fra le due curve di Beziér sarà C 2 se, oltre a valere (12), varrà anche la seguente equazione, ∆2 bn−2 = ∆2 c0 , (14) e sarà G2 se, oltre a valere (13), varrà anche la seguente equazione, ∆2 bn−2 = ω12 ∆2 c0 + ω2 ∆c0 , n−1 (15) dove ω2 indica un qualsiasi altro scalare. 3.2 Curve Beziér–spline Data una partizione a = u0 < · · · < un = b di un intervallo [a , b], diremo che una curva parametrica X : [a , b] → Ed è una curva Beziér–spline di grado m se X(u) = Xi (u) , u ∈ [ui , ui+1 ), i = 0, . . . , n − 1 , con Xi (u) = m X bj,i Bjm ( j=0 u − ui ), hi u ∈ [ui , ui+1 ) , dove hi = ui+1 − ui . Naturalmente, poiché siamo interessati a lavorare con curve almeno continue, richiederemo che bm,i−1 = b0,i , i = 1, . . . , n − 1 . (16) Utilizzando la formula di derivazione di funzioni composte e considerando l’espressione delle derivate di curve di Beziér, si ottiene che la curva è C 1 in [a , b] se risulta anche ∆b0,i ∆bm−1,i−1 = , hi−1 hi i = 1, . . . , n − 1 . (17) Analogamente si ottiene che essa è C 2 in [a , b] se, oltre a valere la (16) e la (17), risulta anche ∆2 bm−2,i−1 ∆2 b0,i = , h2i−1 h2i 16 i = 1, . . . , n − 1 . (18) La curva risulta invece G1 in [a , b] se, oltre a valere la (16), esistono degli scalari positivi ωi , i = 1, . . . , n − 1, tali che ∆bm−1,i−1 ∆b0,i = ωi , hi−1 hi i = 1, . . . , n − 1 . (19) Si noti che tale richiesta assicura la continuità del versore tangente che è una grandezza indipendente dalla parametrizzazione. Infine la curva risulterà G2 in [a , b] se, oltre a valere la (16) e la (19), esisteranno anche degli ulteriori scalari γi , i = 1, . . . , n − 1, tali che 2 γi ∆b0,i ∆2 bm−2,i−1 2 ∆ b0,i , = ω + i 2 2 hi−1 hi m − 1 hi i = 1, . . . , n − 1 . (20) Se la curva è G2 (o anche ovviamente C 2 ), oltre alla continuità del versore tangente è garantita anche quella del Frenet frame e della curvatura. 4 Interpolazione con Beziér–spline cubiche In questa sezione vediamo come sia possibile risolvere due diversi problemi di interpolazione mediante curve Beziér–spline cubiche. Il primo problema è un problema di interpolazione di Hermite che prevede assegnati come dati le coppie di punti e vettore (Pi , vi ) , i = 0, . . . , n e determina X imponendo che X(ui ) = Pi , X0 (ui ) = vi , i = 0, . . . , n Con semplici calcoli, avendo scelto m = 3, se verifica che questo equivale a definire i punti di controllo come segue, b0,i = Pi , b1,i = Pi + h3i vi b3,i = Pi+1 , b2,i = Pi+1 − h3i vi+1 . (21) Si noti che lo schema risulta quindi l ocale in quanto ogni coppia di dati (Pi , vi ) influenza solo due segmenti polinomiali della curva. Naturalmente la Beziér–spline cubica X cosı̀ definita globalmente avrà regolarità C 1 e la qualità della sua forma dipenderà notevolmente da come sono stati scelti i vettori tangenti vi assegnati in input insieme ai punti da interpolare. Per ovviare al problema della scelta dei versori tangenti, si può incrementare la richiesta di regolarità della cirva, passando all’individuazione di una Beziér– spline cubica C 2 che interpoli soltanto i punti Pi , i = 0, . . . , n (interpolazione 17 di Lagrange). In questo caso possiamo sempre utilizzare la (21) [er definire i punti di controllo ma considerando ora i vi , i = 0, . . . , n come incognite. Andando ad imporre le condizioni in (18), con qualche calcolo si ottengono le seguenti equazioni, µi vi−1 + 2 vi + (1 − µi ) vi+1 = 3[µi Pi+1 − Pi Pi − Pi−1 + (1 − µi ) ], hi−1 hi dove µi = hi /(hi−1 + hi ) e i = 1, . . . , n − 1 . Dato chetali equazioni sono solo n − 1, per poter determinare un’unica interpolante occorrerà aggiungere 2 condizioni agli estremi. Per esempio si possono considerare v0 e vn note o si può imporre la condizione di not a knot in u1 e in un−1 o anche la condizione di degree reduction nei due segmenti estremi. Nel primo caso si impone che ∆3 b0,i ∆3 b0,i−1 = , h3i−1 h3i i = 1 and i = n − 1 . Nel secondo si impone che ∆3 b0,n−1 ∆3 b0,0 = = 0. h30 h3n−1 References [1] G. Farin (2002), Curves and Surfaces for CAGD: a practical guide, Kaufmann series in computer graphics and geometric modelling, San Francisco M. Kaufmann Publishers. [2] R. T. Farouki and T. N. T. Goodman (1996), On the optimal stability of the Bernstein basis, Mathematics of Computation 65, 1553–1566. [3] T.N.T. Goodman (1996), Total positivity and the shape of curves, Total positivity and its applications, M. Gasca and C. Micchelli eds., Dordrecht: Kluwer, 157–186. [4] J. Hoscheck and D. Lasser (1993), Fundamental of Computer aided Geometric Design, Wellesley, Mass. Peters. 18
Documenti analoghi
Le curve di Bézier
che lavorava per la fabbrica Renault. I problemi con cui Bézier aveva a che fare non erano
di natura tipografica, ma riguardavano piuttosto la gestione delle macchine a controllo
numerico che tranc...
Tesi Sandri - Dipartimento di Matematica
punto di vista. Consideriamolo ora dal secondo: sia g : [α, β] ⊂ R → E3 , e
siano ti ∈ [α, β] n + 1 valori tali che t0 = α e tn = β. Dati quindi i punti
Pi = g(ti ), sia f (t) la funzione interpola...