Caminhos de elementos gráficos no GDI +
Caminhos são formados por combina linhas, retângulos e curvas simples.Lembre-se de que o naVisão geral de gráficos de vetor Se os seguintes blocos de construção básicos são comprovadamente mais útil para desenhar imagens:
Linhas
Retângulos
Reticências
Arcos
Polígonos
Splines cardinais
Splines de Bézier
No GDI +, a GraphicsPath objeto permite coletar uma sequência desses blocos de construção em uma única unidade. Toda a sequência de linhas, retângulos, polígonos e curvas, em seguida, pode ser desenhada com uma telefonar para o DrawPath método para o Graphics classe. A ilustração a seguir mostra um caminho criado pela combinação de uma linha, um arco, um spline de Bézier e uma spline cardinais.
Usando um caminho
The GraphicsPath classe fornece os seguintes métodos para criação de uma sequência de itens a ser desenhada: AddLine, AddRectangle, AddEllipse, AddArc, AddPolygon, AddCurve (para splines cardinais), e AddBezier. Cada um desses métodos está sobrecarregada; ou seja, cada método oferece suporte a várias listas de parâmetros diferentes.Por exemplo, uma variação do AddLine método recebe quatro números inteiros e outra variação das AddLine método recebe dois Point objetos.
Os métodos para adicionar linhas, retângulos e splines de Bézier em um caminho tem métodos plural complementar que adicionar vários itens para o caminho em uma única telefonar: AddLines, AddRectangles, e AddBeziers. Além disso, a AddCurve e AddArc métodos têm métodos complementar, AddClosedCurve e AddPie, que adicionar uma curva fechada ou pizza ao caminho.
Para desenhar um caminho, é necessário um Graphics objeto, um Pen objeto e um GraphicsPath objeto. The Graphics objeto fornece a DrawPath método e o Pen objeto armazena atributos, sistema autônomo largura e a cor da linha usada para processar o caminho. The GraphicsPath objeto armazena a sequência de linhas e curvas que compõem o caminho. The Pen objeto e o GraphicsPath objeto são passados sistema autônomo argumentos para o DrawPath método. O exemplo a seguir desenha um caminho que consiste em uma linha, uma elipse e uma spline de 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);
A ilustração a seguir mostra o caminho.
Como adicionar linhas, retângulos e curvas a um caminho, você pode adicionar caminhos a um caminho.Isso permite agrupar os caminhos existentes para formar grandes e complexos de caminhos.
myGraphicsPath.AddPath(graphicsPath1, False)
myGraphicsPath.AddPath(graphicsPath2, False)
myGraphicsPath.AddPath(graphicsPath1, false);
myGraphicsPath.AddPath(graphicsPath2, false);
Existem dois outros itens que você pode adicionar a um caminho: seqüências de caracteres e tortas.Uma pizza é uma parte do interior de uma elipse.O exemplo a seguir cria um caminho de um arco, um spline cardinais, uma seqüência de caracteres e uma pizza:
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)
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);
A ilustração a seguir mostra o caminho.Observe que um caminho não precisa estar conectado; o arco, cardinais spline, seqüência de caracteres e pizza são separadas.
Consulte também
Tarefas
Como: Criar objetos gráficos para desenho
Referência
System.Drawing.Drawing2D.GraphicsPath