Grafos, árvores em VB.net

K0mA

Power Member
Boas,

Há alguma maneira de desenhar grafos em .net?
ie. apresentar um grafo ou uma árvore num formulário ou outro componente.

PS. sem ser o [FONT=Verdana, Arial, Helvetica, sans-serif]TreeView[/FONT]

Exemplo:
Prim.PNG

http://pt.wikipedia.org/wiki/Algoritmo_de_Prim
[FONT=Verdana, Arial, Helvetica, sans-serif] [/FONT]
 
Podes desenhar tudo o que te bem apetecer.
Só precisas de 90% de imaginação e o resto de matemática.

Para começares na pedra básica, mete isto no evento PAINT de um form ou num botão, vê o que acontece e tenta retirar informação de como deves fazer.

Código:
        Dim GR As Drawing.Graphics = Me.CreateGraphics
        Dim Vermelho As New Pen(Color.Red, 2)
        Dim Azul As New Pen(Color.Blue, 2)

        GR.DrawEllipse(Azul, New Rectangle(5, 5, 50, 50))

        Dim Triangulo As New Drawing2D.GraphicsPath

        Triangulo.AddLine(New PointF(60, 55), New PointF(120, 5))
        Triangulo.AddLine(New PointF(120, 5), New PointF(180, 55))
        Triangulo.AddLine(New PointF(60, 55), New PointF(180, 55))

        GR.DrawPath(Vermelho, Triangulo)

        GR.DrawArc(Vermelho, 0, 0, 60, 60, 0, 180)

Dessa forma tens acesso aos métodos da forma mais fácil de desenhar. Através do GDI+

Usei uns quantos métodos para veres, mas existem muitos mais.
É mais divertido verificar um a um :p.
 
Obrigado aos dois!!!!!!

Já agora se mais alguém quiser experimentar o exemplo do ribeiro55

Código:
Public Class Form1

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Dim GR As Drawing.Graphics = Me.CreateGraphics
        Dim Vermelho As New Pen(Color.Red, 2)
        Dim Azul As New Pen(Color.Blue, 2)

        GR.DrawEllipse(Azul, New Rectangle(5, 5, 50, 50))

        Dim Triangulo As New Drawing2D.GraphicsPath

        Triangulo.AddLine(New PointF(60, 55), New PointF(120, 5))
        Triangulo.AddLine(New PointF(120, 5), New PointF(180, 55))
        Triangulo.AddLine(New PointF(60, 55), New PointF(180, 55))

        GR.DrawPath(Vermelho, Triangulo)

        GR.DrawArc(Vermelho, 0, 0, 60, 60, 0, 180)
    End Sub

End Class
 
Última edição:
Back
Topo