2012-08-12 14 views
15

Chcę wizualizować wykres reprezentujący mapę geograficzną. W związku z tym krawędzie mojego wykresu są powiązane z różą kompasu (północ, południe, wschód, zachód). Sam wykres jest skierowany i można go uczynić acyklicznym.Algorytm układu, który rozumie różnicę w kompasie

Na przykład mam węzły: House-1, House-2, House-3 z krawędziami [House-1, north-of, House-2], [House-2, east-of, House-3] .

szukam algorytmu układu, które mogą być wykonane, aby zrozumieć kompasu róża (być może jako podpowiedzi?)

Poszedłem przez Jung, JGraph, Graphviz i nikt wydaje się robić to, co chcę, ale Mogłem coś przeoczyć.

Wszelkie sugestie?

+0

Zobacz także ['CompassButtons'] (http://stackoverflow.com/a/10862262/230513). – trashgod

+0

Możliwy duplikat [Dodaj złożony obraz w panelu, z przyciskami wokół niego w jednym dostosowanym interfejsie użytkownika] (http://stackoverflow.com/questions/10861852/add-a-complex-image-in-the-panel- z przyciskami wokół jednego użytkownika) – trashgod

+10

Plakat szuka algorytmu * graficznego układu wykresu * dla narzędzia takiego jak GraphViz, ale potrzebuje go do podjęcia względnych wskazówek dotyczących pozycjonowania. Nie potrzebuje menedżera układu GUI, ale potrzebuje silnika układu, który może pracować z czymś w rodzaju pliku [dot file] (http://www.graphviz.org/doc/info/lang.html) i stworzyć obraz.W tym świetle nie sądzę, aby któryś z powyższych komentarzy był relaventem (tj. * Nie jest to duplikat posta *). – DaoWen

Odpowiedz

3

Była ostatnia praca, która rozwiązała ten problem, w którym próbowali zrekonstruować dawne rekordy ziemi koreańskiej (katasterów). W artykule jest algorytm układu, który powinien zrobić to, co chcesz. Nie zawiera wszystkich szczegółów, ale zawiera zarys i cytaty.

Hyungmin Lee, Sooyun Lee, Namwook Kim i Jinwook Seo. 2012. JigsawMap: łączenie przeszłości z przyszłością poprzez mapowanie historycznych katasterów tekstowych. W materiałach z dorocznej konferencji ACM 2012 na temat ludzkich czynników w systemach komputerowych (CHI '12). ACM, New York, NY, USA, 463-472. DOI = 10.1145/2207676.2207740.

JigsawMap Example

+0

Naruszasz warunki korzystania z praw autorskich, publikując plik PDF: _ Aby skopiować w inny sposób, lub ponownie opublikuj, ** aby publikować na serwerach ** lub redystrybuować do list, wymaga wcześniejszego specjalnego zezwolenia i/lub opłaty. – DaoWen

+0

Artykuł do którego się odwołujesz, ma również kilka cytowań w sekcji Pokrewne prace. Wygląda na to, że jest to najlepsza próba odpowiedzi, którą otrzymamy, więc przyznam ci nagrodę. – DaoWen

0

@edallme: Ładny dokument, ciekawe!

@DaoWen:

Co rozumiem w swoim poście, że szukasz algorytmu umieścić wszystkie bloki na mapie, a nie „widget”, aby to zrobić (więc może się mylę?) .

Jeśli pytasz o pomysły do ​​obliczenia sposobu umieszczania bloków (wiedząc, że "sam wykres jest skierowany i można go uczynić acyklicznym"), powinna działać następująca metoda, niezależnie od używanej biblioteki wykresów:

Można wypróbować -pierwsze - wygenerować mapę zależności, tak jak każdy węzeł jest ograniczony przez inne (względna pozycja i przesunięcie, np. SOUTH/30 jednostek). Ta paczka kodu powinna również sprawdzić niespójności.

Po drugie, obliczyć względną pozycję każdego bloku, przechowując gdzieś min i max (cf część 3) i odniesienie do obiektów mających pozycje min/max.

Po trzecie, powinieneś być w stanie wirtualnie wygenerować pełnowymiarowe wymiary diagramu z minimalnymi/maksymalnymi względnymi pozycjami.

Następnie należy "po prostu" wyciągnąć go z rogu.

Powiązane problemy