Condividi tramite


Spline di tipo Cardinal

Una spline cardinale è una sequenza di singole curve unite per formare una curva più grande. La spline viene specificata da una matrice di punti e da un parametro di tensione. Una spline cardinale passa uniformemente attraverso ogni punto della matrice; non ci sono angoli taglienti e nessun cambiamento improvviso nella strettazza della curva. La figura seguente mostra un set di punti e una spline cardinale che passa attraverso ogni punto del set.

figura che mostra una spline cardinale che passa attraverso sei punti definiti

Una spline fisica è un sottile pezzo di legno o altro materiale flessibile. Prima dell'avvento delle spline matematiche, i progettisti utilizzavano spline fisiche per disegnare le curve. Un progettista posiziona lo spline su un pezzo di carta e lo ancora a un determinato set di punti. La finestra di progettazione potrebbe quindi creare una curva disegnando lungo la spline con una matita. Un determinato set di punti può produrre una varietà di curve, a seconda delle proprietà della spline fisica. Ad esempio, una spline con una resistenza elevata alla piegatura produrrebbe una curva diversa rispetto a una spline estremamente flessibile.

Le formule per le spline matematiche sono basate sulle proprietà delle barre flessibili, quindi le curve prodotte da spline matematiche sono simili alle curve che una volta sono state prodotte da spline fisiche. Proprio come le spline fisiche di tensione diversa produrranno curve diverse attraverso un determinato set di punti, le spline matematiche con valori diversi per il parametro di tensione produrranno curve diverse attraverso un determinato set di punti. La figura seguente mostra quattro spline cardinali che passano attraverso lo stesso set di punti. La tensione viene mostrata per ogni spline. Si noti che una tensione pari a 0 corrisponde a una tensione fisica infinita, forzando la curva a prendere la via più breve (linee rette) tra i punti. Una tensione di 1 corrisponde a nessuna tensione fisica, consentendo alla spline di prendere il percorso della curva minima totale. Con valori di tensione maggiori di 1, la curva si comporta come una molla compressa, spinta per prendere un percorso più lungo.

figura che mostra quattro spline cardinali attraverso gli stessi tre punti

Si noti che le quattro spline nella figura precedente condividono la stessa linea tangente nel punto iniziale. La tangente è la linea disegnata dal punto iniziale al punto successivo lungo la curva. Analogamente, la tangente condivisa al punto finale è la linea disegnata dal punto finale al punto precedente sulla curva.

Per disegnare una spline cardinale, è necessario un oggetto Graphics , un oggetto Pen e una matrice di oggetti Point . L'oggetto Graphics fornisce il metodo DrawCurve , che disegna la spline e l'oggetto Pen archivia gli attributi della spline, ad esempio la larghezza e il colore della linea. La matrice di oggetti Point archivia i punti che la curva passerà attraverso. L'esempio seguente disegna una spline cardinale che passa attraverso i punti in myPointArray. Il terzo parametro è la tensione.

myGraphics.DrawCurve(&myPen, myPointArray, 3, 1.5f);