Spline di tipo Cardinal

Una spline di tipo Cardinal è costituita da una sequenza di curve individuali unite per creare una curva più ampia. La spline viene specificata da una matrice di punti e da un parametro di tensione. Una spline di tipo Cardinal attraversa in modo uniforme tutti i punti della matrice. Nella curva non sono presenti angoli netti o modifiche nette nella tensione della curva. Nell'immagine seguente vengono mostrati un insieme di punti e una spline di tipo Cardinal che passa attraverso ogni punto dell'insieme.

La spline fisica è una stecca sottile di legno o di altro materiale flessibile. Prima dell'introduzione delle spline matematiche, le spline fisiche venivano utilizzate per tracciare curve. La spline veniva appoggiata su un pezzo di carta e ancorata a un dato insieme di punti. Facendo scorrere la matita lungo la spline era quindi possibile tracciare una curva. Un dato insieme di punti poteva dare origine a svariati tipi di curve, a seconda delle proprietà della spline fisica. Una spline molto rigida ad esempio consentiva di produrre una curva diversa da quella creata con una spline estremamente flessibile.

Le formule per le spline matematiche sono basate sulle proprietà delle canne flessibili, quindi le curve prodotte da spline matematiche sono simili alle curve prodotte con le spline fisiche. Così come le spline fisiche di diversa tensione consentivano di produrre diverse curve attraverso un dato insieme di punti, le spline matematiche con diversi valori per il parametro di tensione produrranno curve diverse che attraversano l'insieme di punti dato. Nell'immagine seguente vengono mostrate quattro spline di tipo Cardinal che attraversano lo stesso insieme di punti. Viene mostrata la tensione relativa a ogni spline. Si noti che il valore di tensione 0 corrisponde a una tensione fisica infinita, che fa in modo che la curva scelga il percorso più breve (linee rette) tra i punti. Un valore di tensione pari a 1 corrisponde a tensione fisica nulla e consente alla spline di adottare il percorso associato alla minima curvatura totale. Se si impostano valori di tensione superiori a 1, la curva si comporta come una molla compressa, costretta ad adottare un percorso più lungo.

Si noti che le quattro spline mostrate nell'immagine precedente condividono la stessa tangente al punto iniziale. La tangente è la linea che unisce il punto iniziale e il punto successivo lungo la curva. Analogamente, la tangente condivisa al punto finale corrisponde alla linea che unisce il punto finale e il punto precedente lungo la curva.

Per tracciare una spline di tipo Cardinal, sono necessari un oggetto Graphics, un oggetto Pen e una matrice di oggetti Point. L'oggetto Graphics fornisce il metodo DrawCurve, che consente di tracciare la spline, e nell'oggetto Pen vengono memorizzati gli attributi della spline, quali lo spessore e il colore della linea. Nella matrice di oggetti Point vengono memorizzati i punti che verranno attraversati dalla curva. L'esempio seguente consente di tracciare una spline di tipo Cardinal che attraversa i punti contenuti in myPointArray. Il terzo parametro è la tensione.

myGraphics.DrawCurve(myPen, myPointArray, 1.5F)
[C#]
myGraphics.DrawCurve(myPen, myPointArray, 1.5f);