Disegno di spline cardinali

Una spline cardinale è una curva che passa uniformemente attraverso un determinato set di punti. Per disegnare una spline cardinale, creare un oggetto Graphics e passare l'indirizzo di una matrice di punti al metodo Graphics::D rawCurve . L'esempio seguente disegna una spline cardinala a forma di campana che passa attraverso cinque punti designati:

Point points[] = {Point(0, 100),
                  Point(50, 80),
                  Point(100, 20),
                  Point(150, 80),
                  Point(200, 100)};

Pen pen(Color(255, 0, 0, 255));
graphics.DrawCurve(&pen, points, 5);

La figura seguente mostra la curva e cinque punti.

illustrazione di una spline cardinale che passa attraverso un set di cinque punti

È possibile utilizzare il metodo Graphics::D rawClosedCurve della classe Graphics per disegnare una spline cardinala chiusa. In una spline cardinale chiusa, la curva continua fino all'ultimo punto della matrice e si connette con il primo punto della matrice.

L'esempio seguente disegna una spline cardinale chiusa che passa attraverso sei punti designati.

Point points[] = {Point(60, 60),
   Point(150, 80),
   Point(200, 40),
   Point(180, 120),
   Point(120, 100),
   Point(80, 160)};

Pen pen(Color(255, 0, 0, 255));
graphics.DrawClosedCurve(&pen, points, 6);

La figura seguente mostra la spline chiusa insieme ai sei punti:

illustrazione di una spline cardinale chiusa che passa attraverso un set di sei punti

È possibile modificare il modo in cui una spline cardinale si piega passando un argomento di tensione al metodo Graphics::D rawCurve . L'esempio seguente disegna tre spline cardinali che passano attraverso lo stesso set di punti:

Point points[] = {Point(20, 50),
                  Point(100, 10),
                  Point(200, 100),
                  Point(300, 50),
                  Point(400, 80)};

Pen pen(Color(255, 0, 0, 255));
graphics.DrawCurve(&pen, points, 5, 0.0f);  // tension 0.0
graphics.DrawCurve(&pen, points, 5, 0.6f);  // tension 0.6
graphics.DrawCurve(&pen, points, 5, 1.0f);  // tension 1.0

La figura seguente mostra le tre spline insieme ai relativi valori di tensione. Si noti che quando la tensione è 0, i punti sono collegati da linee rette.

illustrazione di tre spline cardinali che passano attraverso lo stesso set di punti, ma a tensioni diverse