Witam,
poszukuję biblioteki do wizualizacji grafów w c++, czy moglby ktos cos polecic?
Witam,
poszukuję biblioteki do wizualizacji grafów w c++, czy moglby ktos cos polecic?
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ąć.