Compartilhar via


Caminhos de elementos gráficos em GDI+

Caminhos são formados pela combinação de linhas, retângulos e curvas simples. Lembre-se do Visão geral de elementos gráficos de vetor que os seguintes componentes básicos comprovaram para ser muito úteis para o desenho de imagens:

  • Linhas

  • Retângulos

  • Elipses

  • Arcos

  • Polígonos

  • Splines cardinais

  • Splines de Bézier

Em GDI+ a GraphicsPath objeto permite coletar uma seqüência desses blocos de construção em uma única unidade. Toda a seqüência de linhas, retângulos, polígonos e curvas, em seguida, pode ser desenhada com uma chamada para o DrawPath método de Graphics classe. A ilustração a seguir mostra um caminho criado pela combinação de uma linha, um arco, uma spline de Bézier e uma spline cardinais.

Caminho

Usando um caminho

O GraphicsPath classe fornece os seguintes métodos para a criação de uma seqüência de itens a ser desenhada: AddLine, AddRectangle, AddEllipse, AddArc, AddPolygon, AddCurve (for cardinal splines), and AddBezier. Cada um desses métodos é sobrecarregada; ou seja, cada método oferece suporte a várias listas de parâmetros diferentes. Por exemplo, uma variação da AddLine método recebe quatro inteiros e outra variação da AddLine método recebe dois Point objetos.

Os métodos para adicionar linhas, retângulos e splines de Bézier para um caminho têm métodos plural complementar que adiciona vários itens para o caminho em uma única chamada: AddLines, AddRectangles, and AddBeziers. Além disso, o AddCurve e AddArc métodos têm métodos companion, AddClosedCurve e AddPie, que adiciona uma curva fechada ou pizza para o caminho.

Para desenhar um caminho, você precisa de um Graphics objeto, um Pen o objeto e um GraphicsPath objeto. O Graphics objeto fornece a DrawPath método e o Pen objeto armazena os atributos, como a largura e cor, da linha usada para processar o caminho. O GraphicsPath objeto armazena a seqüência de linhas e curvas que compõem o caminho. O Pen objeto e o GraphicsPath objeto são passados como 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.

Caminho

Além de adicionar linhas, retângulos e curvas para um caminho, você pode adicionar caminhos a um caminho. Isso permite combinar 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: as seqüências e tortas. Uma pizza é uma parte do interior de uma elipse. O exemplo a seguir cria um caminho a partir de um arco, uma 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 ser conectado; o arco, cardinais spline, seqüência e pizza são separadas.

Caminhos

Consulte também

Tarefas

Como: Criar objetos gráficos para desenho

Referência

System.Drawing.Drawing2D.GraphicsPath

System.Drawing.Point

Outros recursos

Linhas, curvas e formas

Construindo e desenho de caminhos