Curve di computer grafica

Nella computer grafica, spesso abbiamo bisogno di disegnare diversi tipi di oggetti sullo schermo. Gli oggetti non sono sempre piatti e abbiamo bisogno di disegnare curve molte volte per disegnare un oggetto.

Tipi di curve

Una curva è un insieme infinitamente grande di punti. Ogni punto ha due vicini eccetto gli endpoint. Le curve possono essere generalmente classificate in tre categorie:explicit, implicit, e parametric curves.

Curve implicite

Le rappresentazioni implicite della curva definiscono l'insieme di punti su una curva impiegando una procedura che può verificare se un punto è all'interno della curva. Di solito, una curva implicita è definita da una funzione implicita della forma -

f (x, y) = 0

Può rappresentare curve multivalore (più valori y per un valore x). Un esempio comune è il cerchio, la cui rappresentazione implicita è

x2 + y2 - R2 = 0

Curve esplicite

Una funzione matematica y = f (x) può essere tracciata come una curva. Tale funzione è la rappresentazione esplicita della curva. La rappresentazione esplicita non è generale, poiché non può rappresentare linee verticali ed è anche monivalore. Per ogni valore di x, solo un singolo valore di y viene normalmente calcolato dalla funzione.

Curve parametriche

Le curve di forma parametrica sono chiamate curve parametriche. Le rappresentazioni della curva esplicita e implicita possono essere utilizzate solo quando la funzione è nota. In pratica vengono utilizzate le curve parametriche. Una curva parametrica bidimensionale ha la seguente forma:

P (t) = f (t), g (t) o P (t) = x (t), y (t)

Le funzioni f e g diventano le coordinate (x, y) di un punto qualsiasi della curva, ei punti si ottengono quando il parametro t viene variato su un certo intervallo [a, b], normalmente [0, 1].

Curve di Bézier

La curva di Bézier viene scoperta dall'ingegnere francese Pierre Bézier. Queste curve possono essere generate sotto il controllo di altri punti. Le tangenti approssimative utilizzando i punti di controllo vengono utilizzate per generare la curva. La curva di Bézier può essere rappresentata matematicamente come:

$$ \ sum_ {k = 0} ^ {n} P_ {i} {B_ {i} ^ {n}} (t) $$

Dove $ p_ {i} $ è l'insieme di punti e $ {B_ {i} ^ {n}} (t) $ rappresenta i polinomi di Bernstein che sono dati da -

$$ {B_ {i} ^ {n}} (t) = \ binom {n} {i} (1 - t) ^ {ni} t ^ {i} $$

Dove n è il grado polinomiale, i è l'indice e t è la variabile.

La curva di Bézier più semplice è la linea retta dal punto $ P_ {0} $ a $ P_ {1} $. Una curva di Bézier quadratica è determinata da tre punti di controllo. Una curva di Bézier cubica è determinata da quattro punti di controllo.

Proprietà delle curve di Bézier

Le curve di Bézier hanno le seguenti proprietà:

  • Generalmente seguono la forma del poligono di controllo, che consiste dei segmenti che uniscono i punti di controllo.

  • Passano sempre attraverso il primo e l'ultimo punto di controllo.

  • Sono contenuti nello scafo convesso dei loro punti di controllo che definiscono.

  • Il grado del polinomio che definisce il segmento della curva è uno in meno del numero del punto del poligono che definisce. Pertanto, per 4 punti di controllo, il grado del polinomio è 3, cioè polinomio cubico.

  • Una curva di Bézier generalmente segue la forma del poligono di definizione.

  • La direzione del vettore tangente nei punti finali è uguale a quella del vettore determinata dal primo e dall'ultimo segmento.

  • La proprietà convessa dello scafo per una curva di Bézier garantisce che il polinomio segua uniformemente i punti di controllo.

  • Nessuna linea retta interseca una curva di Bézier più volte di quanto interseca il suo poligono di controllo.

  • Sono invarianti sotto una trasformazione affine.

  • Le curve di Bézier mostrano un controllo globale: lo spostamento di un punto di controllo altera la forma dell'intera curva.

  • Una data curva di Bézier può essere suddivisa in un punto t = t0 in due segmenti di Bézier che si uniscono nel punto corrispondente al valore del parametro t = t0.

Curve B-Spline

La curva di Bezier prodotta dalla funzione base di Bernstein ha una flessibilità limitata.

  • Innanzitutto, il numero di vertici poligonali specificati fissa l'ordine del polinomio risultante che definisce la curva.

  • La seconda caratteristica limitante è che il valore della funzione di fusione è diverso da zero per tutti i valori dei parametri sull'intera curva.

La base B-spline contiene la base Bernstein come caso speciale. La base B-spline non è globale.

Una curva B-spline è definita come una combinazione lineare di punti di controllo Pi e funzione base B-spline $ N_ {i,} $ k (t) data da

$ C (t) = \ sum_ {i = 0} ^ {n} P_ {i} N_ {i, k} (t), $ $ n \ geq k-1, $ $ t \: \ epsilon \: [ tk-1, tn + 1] $

Dove,

  • {$ p_ {i} $: i = 0, 1, 2… .n} sono i punti di controllo

  • k è l'ordine dei segmenti polinomiali della curva B-spline. Ordine k significa che la curva è composta da segmenti polinomiali a tratti di grado k - 1,

  • $ N_ {i, k} (t) $ sono le "funzioni di fusione B-spline normalizzate". Sono descritti dall'ordine k e da una sequenza non decrescente di numeri reali normalmente chiamata “sequenza di nodi”.

$$ {t_ {i}: i = 0, ... n + K} $$

Le funzioni N i , k sono descritte come segue:

$$ N_ {i, 1} (t) = \ left \ {\ begin {matrix} 1, & if \: u \: \ epsilon \: [t_ {i,} t_ {i + 1}) \\ 0 , & Altrimenti \ end {matrice} \ right. $$

e se k> 1,

$$ N_ {i, k} (t) = \ frac {t-t_ {i}} {t_ {i + k-1}} N_ {i, k-1} (t) + \ frac {t_ {i + k} -t} {t_ {i + k} - t_ {i + 1}} N_ {i + 1, k-1} (t) $$

e

$$ t \: \ epsilon \: [t_ {k-1}, t_ {n + 1}) $$

Proprietà della curva B-spline

Le curve B-spline hanno le seguenti proprietà:

  • La somma delle funzioni di base B-spline per qualsiasi valore di parametro è 1.

  • Ogni funzione di base è positiva o zero per tutti i valori dei parametri.

  • Ogni funzione di base ha esattamente un valore massimo, ad eccezione di k = 1.

  • L'ordine massimo della curva è uguale al numero di vertici di definizione del poligono.

  • Il grado del polinomio B-spline è indipendente dal numero di vertici del poligono di definizione.

  • B-spline consente il controllo locale sulla superficie della curva poiché ogni vertice influisce sulla forma di una curva solo su un intervallo di valori di parametro in cui la funzione di base associata è diversa da zero.

  • La curva mostra la proprietà di diminuzione della variazione.

  • La curva generalmente segue la forma del poligono di definizione.

  • Qualsiasi trasformazione affine può essere applicata alla curva applicandola ai vertici del poligono di definizione.

  • La linea curva all'interno dello scafo convesso del poligono che lo definisce.