Curva di Bézier

Le curve di Bezier sono curve polinomiali di progettazione parametrica sviluppate per parti di carrozzeria di automobili . Furono disegnati da Paul de Casteljau nel 1959 per Citroën e, indipendentemente, da Pierre Bézier nel 1962 per Renault (l'opera di Paul de Casteljau era riservata, è il nome di Bézier che è passato ai posteri). Hanno molte applicazioni nella sintesi delle immagini e nel rendering dei caratteri . Hanno dato vita a molti altri oggetti matematici .

Prima di Bézier esistevano le curve di regolazione chiamate spline , ma il difetto era quello di cambiare il loro aspetto durante una rotazione delle coordinate, che le rendeva inutilizzabili in CAD . Bézier iniziato da un geometrico approccio basato sulla linearità di spazio euclideo e la teoria già esistente del baricentro  : se la definizione è puramente geometrica, non interviene punto di riferimento poiché la costruzione è indipendente da esso, che non non era il caso per spline ( le spline conformi ai principi di Bézier saranno successivamente chiamate B-spline ).

Teoria generale

La curva di Bézier per gli n +1 punti di controllo ( P 0 , ..., P n ) , è l'insieme dei punti definiti dalla rappresentazione parametrica , per t ∈ [0; 1] e dove il Bn
io
sono i polinomi di Bernstein .

La sequenza di punti P 0 , ..., P n forma il “  poligono di controllo di Bézier”.

Esempi

Quindi aggiungiamo gli n +1 punti di controllo per ogni coefficiente del polinomio:

con t [0; 1] . È quindi la curva di Bézier di grado 2.

Quindi aggiungiamo gli n +1 punti di controllo per ogni coefficiente del polinomio e otteniamo,

con t [0; 1] . È quindi la curva di Bézier di grado 3.

Nota Poiché i polinomi di Bernstein formano una partizione di unità, abbiamo . La somma dei coefficienti è quindi diversa da zero per ogni t , quindi tutti i punti P ( t ) della curva sono definiti correttamente.

Proprietà

Curve cubiche di Bézier

Quattro punti P 0 , P 1 , P 2 e P 3 definiscono una curva di Bézier cubica. La curva viene tracciata partendo dal punto P 0 , dirigendosi verso P 1 e arrivando al punto P 3 nella direzione P 2 - P 3 . In generale, la curva non passa né per P 1 né per P 2  : questi punti danno solo informazioni sulla direzione. La distanza tra P 0 e P 1 determina la velocità di movimento nella direzione di P 1 prima di girare verso P 3 .

Bezier curve.svgv

Da quanto sopra, la forma parametrica della curva è scritta come una combinazione affine dei punti di controllo

per 0 ≤ t ≤ 1 .
Possiamo vedere chiaramente qui la proprietà di partizione dell'unità dei polinomi di Bernstein: secondo la formula binomiale di ordine 3 di Newton ,

La somma dei coefficienti associati ai punti di controllo vale 1.

Le curve di Bézier sono interessanti per l'elaborazione delle immagini per due motivi principali:

o equivalente

, ,

Attenzione  : contrariamente all'uso in matematica, qui sono punti (più rigorosamente vettori) e non le componenti di un vettore. Inoltre, nella seconda formulazione, le operazioni indicate devono essere eseguite nell'ordine, dall'alto verso il basso, da sinistra verso destra e ripetendo le operazioni anche se appaiono più volte identiche, questo con i nuovi valori dovuti al precedente (matematicamente, è come scomporre la matrice 4 × 4 come prodotto di 6 matrici 4 × 4 con due 1 , due ½ e 0 ovunque).

Più precisamente, possiamo scomporre la curva P ( t ) in due curve P L e P R i cui punti di controllo sono rispettivamente ( L 1 , L 2 , L 3 , L 4 ) e ( R 1 , R 2 , R 3 , R 4 ) con

e

Bezier rec.png

Su questa chiamata ricorsiva al grafico P ( t ) , poiché la curva di Bézier passa per il primo e l'ultimo punto di controllo, è nota la posizione delle estremità di ogni pezzo ( L 1 , L 4 = R 1 e R 4 ) . Quando viene implementato un tale grafico, il criterio per fermare la ricorrenza può essere legato alla distanza tra la sottocurva da tracciare e il segmento [ L 1 , L 4 ] per esempio.

Nota  : l'aritmetica dei numeri reali mobili essendo disponibile direttamente sui processori moderni, è diventata molto più veloce dell'allocazione di memoria necessaria per una ricorsione. Inoltre, un metodo che fornisce i pixel della curva da tracciare senza procedere per gradi non consente l' antialiasing . La ricorsione non è quindi più il metodo giusto per disegnare curve di Bézier; verrà vantaggiosamente utilizzato il metodo che percorre passo passo i pixel calcolando ad ogni passo un "difetto tangente" utilizzabile per l' antialiasing .

Il calcolo di un punto di una curva di Bézier può essere effettuato anche con il metodo di Horner calcolando prima i coefficienti del vettore a i del polinomio:

Esempi

Curva di Bézier lineare (di grado 1) I punti di controllo P 0 e P 1 definiscono la curva di Bézier data dall'equazione: È quindi il segmento [P0, P1]. Curva quadratica di Bézier (di grado 2) Una curva di Bézier quadratica è la curva B ( t ) definita dai punti di controllo P 0 , P 1 e P 2 . Queste curve quadratiche sono ancora ampiamente utilizzate oggi (ad esempio nelle definizioni di glifi dei caratteri in formato TrueType e nei caratteri OpenType nella loro varietà compatibile con TrueType). Tuttavia, se consentono di assicurare la continuità in tangenza di due curve collegate, non consentono (in generale) di preservare la continuità della curvatura nei punti di interconnessione. Per ovviare a questo inconveniente è poi necessario aumentare il numero di archi interconnessi in modo da ridurre le interruzioni di curvatura tra ciascuno di essi, il che ne limita il valore e può portare ad un disegno delle curve più complesso (con più vertici e controllo punta alla posizione). Curva cubica di Bézier (di grado 3) Una curva di Bézier cubica è la curva B ( t ) definita dai punti di controllo P 0 , P 1 , P 2 e P 3 . La sua forma parametrica è: Queste sono le curve di Bézier le più utilizzate nella progettazione grafica (perché consentono di garantire non solo la continuità in tangenza di due curve collegate, ma anche quella della loro curvatura, evitando di dover posizionare molti vertici e punti di controllo). Vengono utilizzati ad esempio nel linguaggio PostScript e nella definizione dei glifi dei font "tipo 1", così come nei font OpenType nella loro varietà CFF ( Compact Font Format ) che utilizza le stesse definizioni di vertici e punti di controllo. . Curva di Bézier di grado maggiore di 3 Sono usati raramente. Preferiamo ridurci all'uso di curve cubiche che sono collegate per preservare il beneficio della continuità di curvatura. Per questo è necessario e sufficiente che l'ultimo punto di una curva sia il primo di un'altra. Si ottiene così una curva continua. Ad esempio, per una curva definita dai punti A , B , C , D , E , F e G , usiamo le curve cubiche definite da A , B , C e D , e da D , E , F e G e la continuità è così assicurata. Per avere una curva C 1 in D , abbiamo bisogno di [ C , D ] = [ D , E ], e se in aggiunta vogliamo che sia C 2 in D , allora [ B , D ] = [ D , F ], e lo stesso per le derivate successive. Tuttavia, questa trasformazione perde la continuità C 3 in D (e l'unico modo per superarla è inserire ulteriori punti di controllo (in modo da aumentare il numero di archi cubici per ottenere una migliore approssimazione e almeno per garantire la continuità C 3 nel punti iniziali, ma non intorno ai punti di controllo aggiunti). L'interesse delle curve di Bézier di grado 4 o più è però oggi più limitato a causa del progresso e dell'integrazione del supporto di B-spline non uniformi nelle moderne librerie grafiche, ed in particolare NURBS , a coefficienti razionali, equivalenti a non- B-spline uniformi (ma con pesi interi in progressione non necessariamente aritmetica, come nel caso delle curve di Bézier), queste B-spline essendo però calcolate prima in uno spazio proiettivo a coordinate omogenee , e che permettono di conservare tutti i vantaggi di B-spline di grado 3 o superiore, anche nel caso di curve coniche (non lineari) impossibili da rappresentare esattamente con curve di Bézier se non con un'approssimazione di un gran numero di vertici e punti di controllo.

Applicazioni

Sintesi di immagini

Animazione

Rendering dei caratteri

Incisione musicale

Curva razionale di Bézier

Per descrivere le curve come i cerchi in modo molto preciso (sebbene in pratica siano sufficienti le approssimazioni delle curve di Bézier), sono necessari ulteriori gradi di libertà.

L'idea è di aggiungere pesi ai punti di controllo (questi sono i ). Il denominatore serve solo a normalizzare la somma dei pesi aggiuntivi, in modo che la curva sia definita come una combinazione convessa dei punti di controllo.

Una curva di Bézier razionale assume la seguente forma generale:

Bibliografia

Note e riferimenti

  1. (in) "La curva comanda" SVG 1.1 (Seconda edizione) - 16 agosto 2011 ( traduzione francese non ufficiale )

Vedi anche

Articoli Correlati

link esterno