Udostępnij za pośrednictwem


Porady: tworzenie figur z linii, krzywych i kształtów

Aby utworzyć rysunek, skonstruuj GraphicsPathmetody , a następnie wywołaj metody, takie jak AddLine i AddCurve, w celu dodania elementów pierwotnych do ścieżki.

Przykład

W poniższych przykładach kodu są tworzone ścieżki zawierające liczby:

  • W pierwszym przykładzie zostanie utworzona ścieżka zawierająca pojedynczy rysunek. Rysunek składa się z pojedynczego łuku. Łuk ma kąt zamiatania –180 stopni, który jest przeciwkręciowy w domyślnym układzie współrzędnych.

  • Drugi przykład tworzy ścieżkę zawierającą dwie liczby. Pierwsza ilustracja to łuk, po którym następuje linia. Druga ilustracja to linia, po której następuje krzywa, po której następuje linia. Pierwsza ilustracja jest pozostawiona otwarta, a druga ilustracja jest zamknięta.

GraphicsPath path = new GraphicsPath();
path.AddArc(175, 50, 50, 50, 0, -180);
e.Graphics.DrawPath(new Pen(Color.FromArgb(128, 255, 0, 0), 4), path);
Dim path As New GraphicsPath()
path.AddArc(175, 50, 50, 50, 0, -180)
e.Graphics.DrawPath(New Pen(Color.FromArgb(128, 255, 0, 0), 4), path)

     // Create an array of points for the curve in the second figure.
     Point[] points = {
new Point(40, 60),
new Point(50, 70),
new Point(30, 90)};

     GraphicsPath path = new GraphicsPath();

     path.StartFigure(); // Start the first figure.
     path.AddArc(175, 50, 50, 50, 0, -180);
     path.AddLine(100, 0, 250, 20);
     // First figure is not closed.

     path.StartFigure(); // Start the second figure.
     path.AddLine(50, 20, 5, 90);
     path.AddCurve(points, 3);
     path.AddLine(50, 150, 150, 180);
     path.CloseFigure(); // Second figure is closed.

     e.Graphics.DrawPath(new Pen(Color.FromArgb(255, 255, 0, 0), 2), path);
' Create an array of points for the curve in the second figure.
Dim points As Point() = { _
   New Point(40, 60), _
   New Point(50, 70), _
   New Point(30, 90)}

Dim path As New GraphicsPath()

path.StartFigure() ' Start the first figure.
path.AddArc(175, 50, 50, 50, 0, -180)
path.AddLine(100, 0, 250, 20)
' First figure is not closed.

path.StartFigure() ' Start the second figure.
path.AddLine(50, 20, 5, 90)
path.AddCurve(points, 3)
path.AddLine(50, 150, 150, 180)
path.CloseFigure() ' Second figure is closed.
e.Graphics.DrawPath(New Pen(Color.FromArgb(255, 255, 0, 0), 2), path)

Kompilowanie kodu

Poprzednie przykłady są przeznaczone do użycia z formularzami systemu Windows i wymagają PaintEventArgseparametru Paint programu obsługi zdarzeń.

Zobacz też