PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java/Mathematik - Pfeil zwischen zwei Punkten


Dr.Doom
2007-11-21, 16:54:29
Howdy,
ich bastle gerade an einem JPanel (Java), das mir Knoten und Kanten eines Graphen anzeigen soll.

Gerichtete Graphen sollen Kanten mit einem Pfeil am Ende haben.
Ich möchte zwischen zwei Knoten einen Pfeil zeichnen, ich kenne X/Y-Koordinaten des jeweiligen Mittelpunkts.

Ich möchte nun aber nicht einfach eine Linie zwischen den Mittelpunkten ziehen und einen Pfeil ans Ende klatschen:
Die Linie mit Pfeil soll ausserhalb bzw. am Rand des Knotens beginnen/enden. Siehe Bild.

http://mitglied.lycos.de/bratworscht/bilder/arrow.jpg

Ich programmiere schon seit heute morgen um 8 und irgendwie stehe ich gerade vollkommen auf dem Schlauch. *g*
Ich weiss einfach nicht mehr, wie ich die Koordinaten der gelb eingekreisten Stellen errechnen kann.

Die Mittelpunkte der Knoten haben Koordinaten (X1, Y1) bzw (X2, Y2), der Durchmesser von so einem Knoten ist 'nodesize'.

Coda
2007-11-21, 16:58:17
Naja. Vektor zwischen X=(x1/y1) und Y=(x2/y2) berechnen mittels Y-X, den normalisieren (durch seine eigene Länge teilen) und dann mit (nodesize/2) multiplizieren. Den Vektor addierst dann zu X und subtrahierst ihn von Y und du hast deine zwei Koordinaten.

Dr.Doom
2007-11-21, 17:35:37
Danke, hab doch noch meine alten Mathematik-Bücher rausgekramt *staubhust* und bin zum demselben Verfahren gekommen.

Tuts auch schon wie es soll. ;)