2009-01-21 12 views
5

Poszukuję prostej biblioteki układu wykresów dla C++. Chcę osadzić bibliotekę w naszym wizualizatorze na podstawie wxWidgets. Podsumowując, szukam czegoś takiego jak graphviz, z wyjątkiem dynamicznego - czyli wtedy, gdy wystąpi zdarzenie, tylko zmiana w wykresie musi być załadowana, a nie pełny wyświetlacz. Jest dynagraph, ale wygląda na to, że jest to martwy projekt. Wcześniej sugerowano mi używanie VTK - ale jest to waga ciężka.Proste dynamiczne wyświetlanie wykresów dla C++

Poszukuję open source, non-copyleft rodzaju biblioteki dostępne do użytku komercyjnego (GPL jest obecnie, LGPL powinno być ok). Jestem otwarty na sugestie, których Google nie da.

Odpowiedz

4

Układ generowany przez Graphviz opiera się na strukturze globalnej - każdy pojedynczy dodatek może radykalnie zmienić wynik (chyba że używasz stałych współrzędnych, w takim przypadku prawdopodobnie nie zadajesz tego pytania). Zasadniczo, jeśli chcesz automatycznego rozmieszczenia elementów, trzeba przyjąć jedną z poniższych rozwiązań:

  • Kiedy nowy element jest umieszczony, symulacja fizyki jest prowadzony w czasie rzeczywistym, powodując węzły odbić się dziko, dopóki oni osiedlić się ich nowe lokalizacje. Będzie to powolne, ale pokaże "przyjemne" zmiany.
  • Po umieszczeniu nowego elementu cały wykres zostaje ponownie narysowany (fizyka/cokolwiek jest ukryte, ale cała scena zostaje zmodyfikowana). Będzie to szybsze ze względu na brak konieczności przerysowywania, ale względne położenie węzłów może być zupełnie inne.
  • Po umieszczeniu nowego elementu istniejące elementy nie są modyfikowane. Po wystarczającej dynamicznej aktualizacji wykres będzie wyglądał jak bzdura, ponieważ automatyczne umieszczanie jest globalnym problemem optymalizacyjnym.

Niestety, nie mogę pomóc, ale może to pomoże wyjaśnić, dlaczego to, czego szukasz, może po prostu nie istnieć (lub być dobrym).

0

Aby przezwyciężyć niektóre z isues podczas korzystania z graphviz (opisana przez Toma). Ustawiamy wizualizerskie współrzędne światowe tak, aby pokrywały się ze światowymi współrzędnymi grafviz.

następnie. zakładając, że każdy element wizualny ma unikalny identyfikator, zbuduj wykres wykorzystując te elementy. wyświetlać wykres jako tekst. wyrównaj wszystko na podstawie analizy wyjściowej. ?

-

Michael