Condividi tramite


Spline di tipo Cardinal in GDI+

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 stretta della curva. La figura seguente mostra un set di punti e una spline cardinale che passa attraverso ogni punto del set.

Cardinal Spline

Spline fisiche e matematiche

Una spline fisica è un sottile pezzo di legno o altro materiale flessibile. Prima dell'avvento delle spline matematiche, i progettisti usavano spline fisiche per disegnare curve. Una finestra di progettazione inserisce lo spline su un foglio 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 penna o 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 un'elevata resistenza alla piegatura produrrebbe una curva diversa rispetto a una spline estremamente flessibile.

Le formule per le spline matematiche si basano sulle proprietà delle barre flessibili, quindi le curve prodotte da spline matematiche sono simili alle curve prodotte una volta dalle spline fisiche. Così 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. Una tensione pari a 0 corrisponde alla 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.

Cardinal Splines

Le quattro spline nell'illustrazione 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 nel punto finale è la linea disegnata dal punto finale al punto precedente della curva.

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

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

Vedi anche