Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ścieżki są tworzone przez łączenie linii, prostokątów i prostych krzywych. Przypomnij sobie z Vector Graphics Overview, że następujące podstawowe bloki konstrukcyjne okazały się najbardziej przydatne do rysowania obrazów:
Linie
Prostokąty
Elipsy
Łuki
Wielokąty
Splajny kardynalne
Krzywe Béziera
W GDI+obiekt GraphicsPath umożliwia zebranie sekwencji tych bloków konstrukcyjnych w jednej jednostce. Cała sekwencja linii, prostokątów, wielokątów i krzywych można następnie narysować za pomocą jednego wywołania metody DrawPath klasy Graphics. Poniższa ilustracja przedstawia ścieżkę utworzoną przez połączenie linii, łuku, krzywej Béziera i linii kardynanej.
Używanie ścieżki
Klasa GraphicsPath udostępnia następujące metody tworzenia sekwencji elementów do rysowania: AddLine, AddRectangle, AddEllipse, AddArc, AddPolygon, AddCurve (w przypadku linii kardynaalnych) i AddBezier. Każda z tych metod jest przeciążona; oznacza to, że każda metoda obsługuje kilka różnych list parametrów. Na przykład jedna odmiana metody AddLine otrzymuje cztery liczby całkowite, a inna odmiana metody AddLine odbiera dwa obiekty Point.
Metody dodawania wierszy, prostokątów i krzywych Bézier do ścieżki mają metody towarzyszące w liczbie mnogiej, które dodają kilka elementów do ścieżki w jednym wywołaniu: AddLines, AddRectanglesi AddBeziers. Ponadto metody AddCurve i AddArc mają metody towarzyszące, AddClosedCurve i AddPie, które dodają zamkniętą krzywą lub wykres kołowy do ścieżki.
Aby narysować ścieżkę, potrzebujesz obiektu Graphics, obiektu Pen i obiektu GraphicsPath. Obiekt Graphics udostępnia metodę DrawPath, a obiekt Pen przechowuje atrybuty, takie jak szerokość i kolor, linii używanej do renderowania ścieżki. Obiekt GraphicsPath przechowuje sekwencję linii i krzywych tworzących ścieżkę. Obiekt Pen i obiekt GraphicsPath są przekazywane jako argumenty do metody DrawPath. W poniższym przykładzie przedstawiono ścieżkę składającą się z linii, wielokropka i krzywej Béziera:
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)
Poniższa ilustracja przedstawia ścieżkę.
Oprócz dodawania linii, prostokątów i krzywych do ścieżki można dodawać do niej inne ścieżki. Umożliwia to łączenie istniejących ścieżek w celu utworzenia dużych, złożonych ścieżek.
myGraphicsPath.AddPath(graphicsPath1, false);
myGraphicsPath.AddPath(graphicsPath2, false);
myGraphicsPath.AddPath(graphicsPath1, False)
myGraphicsPath.AddPath(graphicsPath2, False)
Istnieją dwa inne elementy, które można dodać do ścieżki: łańcuchy znaków i wykresy kołowe. Wycinek jest częścią wnętrza elipsy. Poniższy przykład tworzy ścieżkę na podstawie łuku, linii kardynanej, ciągu i kołu:
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)
Poniższa ilustracja przedstawia ścieżkę. Należy pamiętać, że ścieżka nie musi być połączona; łuk, splajn kardynalny, string i wycinek kołowy są oddzielone.
Zobacz także
.NET Desktop feedback