2012-04-06 7 views
2

Ich versuche, eine interaktive planare Gerade-Grafik (PSLG) auf einem JApplet zu zeichnen. Ich verwende Mausklicks, um die Eckpunkte der PSLG zu bestimmen.interaktive ebene gerade Linie Grafik in Schwung

Hier ist der Algorithmus, dem ich beim Zeichnen von Kanten der PSLG folge 1. Der Punkt, wo der Benutzer einen Mausklick ausführt, wird als Eckpunkt der PSLG hinzugefügt. 2. Wenn er einen zweiten Punkt klickt, wird eine Kante direkt unter dem Punkt erstellt und die zuvor angeklickt Punkt

Hier sind einige Mängel, die ich aufgrund dieses Algorithmus auf die Verwendung beobachtet:

  1. Unfähigkeit disjoint-planar sets erstellen wie zB nur ein Liniensegment
  2. Ein geschlossenes Polygon wird nur erstellt, wenn der Benutzer genau an der Stelle klickt, an der der Startpunkt war [Im Wesentlichen, wenn der Benutzer sehr nahe am Startpunkt klickt es gibt keine Möglichkeit zu sagen, dass dieser Punkt tatsächlich der Startpunkt ist, da er innerhalb eines bestimmten Toleranzbereichs von dem Punkt aus erscheint].

Ich habe hier einige ähnliche Fragen ausgecheckt und Leute schlagen die JFreeChart Bibliothek zu verwenden. Aber so weit ich komme, war das Szenario in diesen Fragen, dass die Punkte der PSLG bereits bekannt waren. Ich weiß nicht, ob JFreeChart kann

die für die Erstellung von interaktiven PSLG verwendet werden, dachte ich über Punkte hinzufügen und eine Schaltfläche, die Kanten unter Punkten hinzufügen sagen würde, aber wenn das der Fall ist, die 2 Punkte Auswahl noch die Nähe einbeziehen Problem in 2.

Ich frage mich, ob jemand könnte mir einen besseren Ansatz, wie man mit dieser Situation umzugehen.

Vielen Dank im Voraus

+0

Ich bin mir nicht sicher, ob ich Ihr Problem # 1 verstehe, aber für # 2 könnten Sie ein Menü mit der rechten Maustaste öffnen, um dem Benutzer zu erlauben, das Polygon zu schließen, falls gewünscht. –

Antwort

4

GraphPanel könnte diese Aufgabe angepasst werden, obwohl es von einer fortgeschritteneren edge model für schnellere Suche profitieren könnte. Beachten Sie auch JGraph.

+0

Siehe auch 'JHotDraw', zitiert [hier] (http://stackoverflow.com/q/13312223/230513). – trashgod

Verwandte Themen