Mam macierz sąsiedztwa dla wykresu. Muszę wizualizować ten wykres bez przecinania krawędzi. Wierzchołki na wykresie można rozmieszczać losowo. Znam jedno rozwiązanie - wyliczenie wszystkich krawędzi dla skrzyżowań. Jeśli krawędzie przecinają się, a następnie przestawiają wierzchołek, ale jest on zbyt drogi dla dużej liczby wierzchołków (więcej niż 20). Jakieś inne pomysły, jak sprawdzić przecinające się krawędzie?Jak narysować wykres z rozłącznymi krawędziami?
5
A
Odpowiedz
1
Bardzo łatwo jest zwizualizować dowolny wykres w płaszczyźnie 3D z rozłącznymi krawędziami.
1) Umieść wszystkie wierzchołki w dowolnym punkcie płaszczyzny 3D, tak aby żadne trzy wierzchołki nie były współliniowe, a żadne cztery wierzchołki nie były w tej samej płaszczyźnie.
2) Przejdź przez matrycę przyległości i narysuj linię/krzywą, aby połączyć wierzchołki.
Na płaszczyźnie 2D nie można zagwarantować istnienia rozwiązania. Na przykład weź najgorszy scenariusz, że istnieje około 10 wierzchołków i każdy wierzchołek jest ze sobą połączony.
Powiązane problemy
- 1. Pobierz grafviz, aby narysować węzły nad krawędziami
- 2. Jak narysować wykres w PHP?
- 3. Jak narysować wykres funkcji w WPF?
- 4. Jak narysować wykres w systemie Android?
- 5. Jak utrzymywać tylko węzły w sieciowym-wykresie z 2+ wyjściowymi krawędziami lub 0 wyjściowymi krawędziami?
- 6. Czy jest możliwe narysować wykres pionowo z python matplotlib?
- 7. SpriteKit SKPhysicsBody z wewnętrznymi krawędziami
- 8. Rysowanie wykresu z ważonymi krawędziami
- 9. Jak przekształcić niekierowany, bardzo cykliczny wykres w skierowany wykres acykliczny?
- 10. Ładowanie węzłów z atrybutami i krawędziami z DataFrame do NetworkX
- 11. Rysowanie okręgu z cieniowaniem w klipach SVG krawędziami
- 12. Wykres - Kwadrat skierowanego wykresu
- 13. Zmiana rozmiaru UII z twardymi krawędziami
- 14. Nie można narysować wykres, 'x' musi być liczbą
- 15. Pozioma wersja recyklingowa z zanikającymi krawędziami
- 16. Czy można narysować wykres 3D za pomocą jFree?
- 17. Jak narysować ścieżkę z bitmapą?
- 18. Tworzenie wykresu z krawędziami o różnych kolorach w Mathematica
- 19. Jak narysować wykres z posortowanymi poziomymi paskami błędów (posortowane wykresy ze znakami błędów)?
- 20. Jak narysować raport klasyfikacyjny scikit?
- 21. Jak narysować tekst na płótnie?
- 22. Jak przejść przez wykres z ArangoDB i PHP
- 23. Jak narysować „zoom in” efektu w R
- 24. Jak narysować pionową linię w gnuplot?
- 25. Jak mogę narysować sektor okręgu z klasą elipsy?
- 26. Narysuj wykres z listy połączonych węzłów.
- 27. Graphviz: odległość między krawędziami i przekazanymi węzłami za pomocą neato
- 28. Jak narysować tylko strzałka w gnuplot
- 29. Jak narysować Ułożone Wykresy słupkowe w iOS
- 30. Google jak Wykres Grafika/Wykres liniowy
Czego szukasz to algorytm rysowania planarnego, np. Zaimplementowany przez [boost] (http://www.boost.org/doc/libs/1_36_0/libs/graph/doc/planar_graphs.html). Oczywiście może to działać tylko wtedy, gdy wykres jest rzeczywiście planarny, który nie został określony. –
[Tutaj] (http://stackoverflow.com/questions/2751826/which-c-graph-library-ould-i-use) to lista bibliotek, które wykonują graficzne układy, w tym także doładowania. Jeśli chcesz zaimplementować własny, [tutaj] (http://www.csi.ucd.ie/staff/aquigley/home/downloads/aq-gd2000.pdf), jest algorytm, który wykonuje wykresy 2d. –