Condividi tramite


Spline di tipo Cardinal in GDI+

Aggiornamento: novembre 2007

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.

Spline di tipo Cardinal

Spline fisiche e matematiche

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 o la penna 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.

Spline di tipo Cardinal

Si noti che le quattro spline mostrate nell'immagine precedente condividono la stessa tangente nel 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 creare una spline di tipo Cardinal, sono necessari un'istanza della classe Graphics, un Pen e una matrice di oggetti Point. L'istanza della classe Graphics fornisce il metodo DrawCurve che traccia la spline, mentre nell'oggetto Pen vengono memorizzati gli attributi della spline, ad esempio lo spessore e il colore della linea. Nella matrice di oggetti Point vengono memorizzati i punti che verranno attraversati dalla curva. Nell'esempio di codice che segue viene illustrato come creare una spline di tipo Cardinal che attraversa i punti contenuti in myPointArray. Il terzo parametro è la tensione.

myGraphics.DrawCurve(myPen, myPointArray, 1.5F)

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

Vedere anche

Altre risorse

Linee, curve e forme

Costruzione e creazione di curve