Procedura: disegnare spline di tipo Cardinal

Una spline cardinale è una curva che passa uniformemente attraverso un determinato set di punti. Per disegnare una spline cardinale, creare un Graphics oggetto e passare l'indirizzo di una matrice di punti al DrawCurve metodo .

Disegno di una spline cardinale a forma di campana

  • Nell'esempio seguente viene disegnato uno spline cardinale a forma di campana che passa attraverso cinque punti designati. La figura seguente mostra la curva e cinque punti.

    Diagramma che mostra una spline cardinale a forma di campana.

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

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points);

Disegno di una spline cardinale chiusa

  • Utilizzare il DrawClosedCurve metodo della Graphics classe per disegnare una spline cardinale chiusa. In una spline cardinale chiusa, la curva continua fino all'ultimo punto della matrice e si connette al primo punto della matrice. Nell'esempio seguente viene disegnato uno spline cardinale chiuso che passa attraverso sei punti designati. La figura seguente mostra la spline chiusa insieme ai sei punti:

Diagramma che mostra una spline cardinale chiusa.

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

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawClosedCurve(pen, points);

Modifica della curva di una spline cardinale

  • Modificare il modo in cui una spline cardinale si piega passando un argomento di tensione al DrawCurve metodo . Nell'esempio seguente vengono disegnate tre spline cardinali che passano attraverso lo stesso set di punti. 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.

Diagramma che mostra tre spline cardinali.

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

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points, 0.0f);
e.Graphics.DrawCurve(pen, points, 0.6f);
e.Graphics.DrawCurve(pen, points, 1.0f);

Compilazione del codice

Gli esempi precedenti sono progettati per l'uso con Windows Form e richiedono PaintEventArgs e, che è un parametro del Paint gestore eventi.

Vedi anche