Bagikan melalui


Jalur Grafis di GDI+

Jalur dibentuk dengan menggabungkan garis, persegi panjang, dan kurva sederhana. Ingat dari Gambaran Umum Grafis Vektor bahwa blok penyusun dasar berikut telah terbukti paling berguna untuk menggambar gambar:

  • Garis

  • Persegi panjang

  • Elips

  • Arcs

  • Poligon

  • Spline kardinal

  • Spline bézier

Di GDI+, GraphicsPath objek memungkinkan Anda mengumpulkan urutan blok bangunan ini ke dalam satu unit. Seluruh urutan garis, persegi panjang, poligon, dan kurva kemudian dapat digambar dengan satu panggilan ke DrawPath metode Graphics kelas. Ilustrasi berikut menunjukkan jalur yang dibuat dengan menggabungkan garis, busur, spline Bézier, dan spline kardinal.

Image of a single-line path, starting from a straight line and continuing into different shapes.

Menggunakan Jalur

Kelas GraphicsPath menyediakan metode berikut untuk membuat urutan item yang akan digambar: AddLine, , AddRectangle, AddEllipseAddArc, AddPolygon, AddCurve (untuk spline kardinal), dan AddBezier. Masing-masing metode ini kelebihan beban; artinya, setiap metode mendukung beberapa daftar parameter yang berbeda. Misalnya, satu variasi AddLine metode menerima empat bilangan bulat, dan variasi lain dari AddLine metode menerima dua Point objek.

Metode untuk menambahkan garis, persegi panjang, dan spline Bézier ke jalur memiliki metode pendamping jamak yang menambahkan beberapa item ke jalur dalam satu panggilan: AddLines, , AddRectanglesdan AddBeziers. Selain itu AddCurve , metode dan AddArc memiliki metode pendamping, AddClosedCurve dan AddPie, yang menambahkan kurva atau pai tertutup ke jalur.

Untuk menggambar jalur, Anda memerlukan Graphics objek, Pen objek, dan GraphicsPath objek. Objek Graphics menyediakan DrawPath metode, dan Pen objek menyimpan atribut, seperti lebar dan warna, dari garis yang digunakan untuk merender jalur. Objek GraphicsPath menyimpan urutan garis dan kurva yang membentuk jalur. Objek Pen dan GraphicsPath objek diteruskan sebagai argumen ke DrawPath metode . Contoh berikut menggambar jalur yang terdiri dari garis, elips, dan spline Bézier:

myGraphicsPath.AddLine(0, 0, 30, 20);
myGraphicsPath.AddEllipse(20, 20, 20, 40);
myGraphicsPath.AddBezier(30, 60, 70, 60, 50, 30, 100, 10);
myGraphics.DrawPath(myPen, myGraphicsPath);
myGraphicsPath.AddLine(0, 0, 30, 20)
myGraphicsPath.AddEllipse(20, 20, 20, 40)
myGraphicsPath.AddBezier(30, 60, 70, 60, 50, 30, 100, 10)
myGraphics.DrawPath(myPen, myGraphicsPath)

Ilustrasi berikut menunjukkan jalurnya.

Image of a path displayed within a graph.

Selain menambahkan garis, persegi panjang, dan kurva ke jalur, Anda dapat menambahkan jalur ke jalur. Ini memungkinkan Anda menggabungkan jalur yang ada untuk membentuk jalur yang besar dan kompleks.

myGraphicsPath.AddPath(graphicsPath1, false);
myGraphicsPath.AddPath(graphicsPath2, false);
myGraphicsPath.AddPath(graphicsPath1, False)
myGraphicsPath.AddPath(graphicsPath2, False)

Ada dua item lain yang dapat Anda tambahkan ke jalur: string dan pai. Pai adalah bagian dari interior elips. Contoh berikut membuat jalur dari busur, spline kardinal, string, dan pai:

GraphicsPath myGraphicsPath = new GraphicsPath();

Point[] myPointArray =
{
    new Point(5, 30),
    new Point(20, 40),
    new Point(50, 30)
};

FontFamily myFontFamily = new FontFamily("Times New Roman");
PointF myPointF = new PointF(50, 20);
StringFormat myStringFormat = new StringFormat();

myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180);
myGraphicsPath.StartFigure();
myGraphicsPath.AddCurve(myPointArray);
myGraphicsPath.AddString("a string in a path", myFontFamily,
   0, 24, myPointF, myStringFormat);
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110);
myGraphics.DrawPath(myPen, myGraphicsPath);
Dim myGraphicsPath As New GraphicsPath()

Dim myPointArray As Point() = { _
   New Point(5, 30), _
   New Point(20, 40), _
   New Point(50, 30)}

Dim myFontFamily As New FontFamily("Times New Roman")
Dim myPointF As New PointF(50, 20)
Dim myStringFormat As New StringFormat()

myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180)
myGraphicsPath.StartFigure()
myGraphicsPath.AddCurve(myPointArray)
myGraphicsPath.AddString("a string in a path", myFontFamily, _
   0, 24, myPointF, myStringFormat)
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110)
myGraphics.DrawPath(myPen, myGraphicsPath)

Ilustrasi berikut menunjukkan jalurnya. Perhatikan bahwa jalur tidak harus terhubung; busur, spline kardinal, string, dan pai dipisahkan.

Paths

Baca juga