Gewusst wie: Zeichnen von kardinalen Splines

Bei einem kardinalen Spline handelt es sich um eine Kurve, die glatt durch eine vorgegebene Anzahl von Punkten verläuft. Um einen kardinalen Spline zu zeichnen, erstellen Sie ein Graphics-Objekt und übergeben die Adresse eines Punktearrays an die DrawCurve-Methode.

Zeichnen eines glockenförmigen kardinalen Splines

  • Im folgenden Beispiel wird ein glockenförmiger kardinaler Spline gezeichnet, der durch fünf vorgegebene Punkte verläuft. In der folgenden Abbildung sind die Kurve und die fünf Punkte dargestellt.

    Kardinaler Spline

        Dim points As Point() = { _
           New Point(0, 100), _
           New Point(50, 80), _
           New Point(100, 20), _
           New Point(150, 80), _
           New Point(200, 100)}

        Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
        e.Graphics.DrawCurve(pen, points)

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);

Zeichnen eines geschlossenen kardinalen Splines

  • Verwenden Sie die DrawClosedCurve-Methode der Graphics-Klasse, um einen geschlossenen kardinalen Spline zu zeichnen. In einem geschlossenen kardinalen Spline wird die Kurve über den letzten Punkt im Array hinaus fortgesetzt; dieser wird mit dem ersten Punkt im Array verbunden. Im folgenden Beispiel wird ein geschlossener kardinaler Spline gezeichnet, der durch sechs vorgegebene Punkte verläuft. In der folgenden Abbildung ist der geschlossene Spline mit seinen sechs Punkten dargestellt.

Kardinaler Spline

        Dim points As Point() = { _
           New Point(60, 60), _
           New Point(150, 80), _
           New Point(200, 40), _
           New Point(180, 120), _
           New Point(120, 100), _
           New Point(80, 160)}

        Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
        e.Graphics.DrawClosedCurve(pen, points)

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);

Ändern der Krümmung eines kardinalen Splines

  • Ändern Sie die Krümmung eines kardinalen Splines, indem Sie ein Spannungsargument an die DrawCurve-Methode übergeben. Im folgenden Beispiel werden drei kardinale Splines gezeichnet, die durch dieselben Punkte verlaufen. In der folgenden Abbildung sind die drei Splinekurven mit den entsprechenden Spannungswerten dargestellt. Wenn die Spannung gleich 0 ist, werden die Punkte durch gerade Linien verbunden.

Kardinaler Spline

        Dim points As Point() = { _
           New Point(20, 50), _
           New Point(100, 10), _
           New Point(200, 100), _
           New Point(300, 50), _
           New Point(400, 80)}

        Dim pen As 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)

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);

Kompilieren des Codes

Die vorangehenden Beispiele sind für die Verwendung mit Windows Forms konzipiert und erfordern PaintEventArgs e, einen Parameter des Paint-Ereignishandlers.

Siehe auch

Weitere Ressourcen

Linien, Kurven und Formen

Erstellen und Zeichnen von Kurven