Biblioteka do wizualizacji grafów

0

Witam,

poszukuję biblioteki do wizualizacji grafów w c++, czy moglby ktos cos polecic?

0

Prostą metodą nie wymagającą dodatkowych bibliotek jest stworzenie prostego rysunku SVG.
Kiedyś skrobnąłem coś takiego w C#:

    writer.WriteLine(@"<?xml version=""1.0"" standalone=""no""?>");
    writer.WriteLine(@"<!DOCTYPE svg PUBLIC ""-//W3C//DTD SVG 1.1//EN"" ");
    writer.WriteLine(@"""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"">");
    writer.WriteLine(@"<svg width=""100%"" height=""100%"" version=""1.1""");
    writer.WriteLine(@"xmlns=""http://www.w3.org/2000/svg"">");

    writer.Write(@"<path d=""M{0} {1}",
        miasta[trasa[ilosc_miast - 1]].x,
        miasta[trasa[ilosc_miast - 1]].y);

    foreach (int pozycja in trasa)
    {
        writer.Write(@" L{0} {1}", miasta[pozycja].x, miasta[pozycja].y);
    }

    writer.WriteLine(@" Z"" style=""stroke:rgb(220,0,0);stroke-width:2;fill:none""/>");

    foreach (Miasto miasto in miasta)
        writer.WriteLine(@"<ellipse cx=""{0}"" cy=""{1}"" rx=""5"" ry=""5"" style=""stroke:rgb(220,0,0);stroke-width:1;fill:rgb(230,220,0)""/>",
           miasto.x, miasto.y);


    writer.WriteLine(@"</svg>");

Kod ma za zadanie narysować ścieżkę hamiltona. Tablica 'miasta' zawiera współrzędne x/y wierzchołków grafu. Tablica 'trasa' zawiera kolejność z jaką łączone są wierzchołki.
Małe info co do innego języka:
@ przed łańcuchem "wyłącza" znaki specjalne tzn. backslash () to backslash
jedynym znakiem specjalnym w takim łańcuchu to podwójny cudzysłów ("") oznaczający cudzysłów
{N} oznacza wypisanie N-tego argumentu, np. aby wyświetlić zmienną X można napisać Write("{0}", X)

Są też przeróżne biblioteki ale może uściślijmy co chcesz osiągnąć.

  1. Czy masz ustaloną pozycję węzłów, czy może chcesz aby wierzchołki zostały rozmieszczone automatycznie?
  2. Czy chcesz wyświetlać graf w swoim programie? Jeśli tak, to jaka platforma?

1 użytkowników online, w tym zalogowanych: 0, gości: 1