Flex: zeichnen einer Verbindungslinie zwischen den Formen
Baue ich ein diagramming Werkzeug, die mit Adobe Flex 3. Ich bin zu implementieren, Verbindungslinien und ich habe eine Frage.
Vorstellen, ich habe 2 Plätze auf zufälligen Positionen auf der Leinwand. Ich brauche das zeichnen als Verbindungslinie zwischen Ihnen. Ich brauche es, um zu neigen, um das Ziel-Platz ist die Mitte, aber am Ende auf seine Grenze.
Wie finde ich die genauen Punkte, zwischen denen die Grenze ziehen?
Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Beispiel, das tun, was Sie wollen.
Dieser code ist nicht vollständig optimiert. Die Idee ist, mehr zu erklären, wie es funktioniert. Im Grunde definieren wir zwei (Zufalls -) Plätze, und indem Sie eine Linie zwischen Ihnen. Auf die Spur, die Linie, die wir berechnen, einen Winkel von der Mitte an das erste Quadrat, um die Mitte des zweiten, und wir verwenden eine spezielle Methode (
getSquareBorderPointAtAngle
) zu extrahieren, einen Punkt auf dem Platz Grenze in die richtige Richtung.Diese Methode ist der erste entscheidende Punkt dieses snippet. Wir rechnen damit, dass mit einfachen Kreis-geometrie, mit ein wenig Komplexifizierung, wie machen wir das-Punkt-Spiel die Grenze anstelle der übereinstimmenden einem Kreis oder im Quadrat.
Dann zeichnen wir einen Pfeil-Kopf. Dafür, wir machen verwenden der Flash
Matrix
Klasse, weil es viel einfacher ist, auf diese Weise als zu berechnen, es von der Pike auf.- Und hier sind wir fertig.
Ich war das Lesen der Antworten hier, vor einem Monat, da muss ich die gleiche Sache. Fand diese Steckverbinder zeichnen Beispiel in der Zwischenzeit, und dachte, ich würde teilen den link.
Beispiel zieht Verbindungslinien zwischen uicomponents und updates der Linien, da sich die Anschlüsse gezogen werden. Nice one!
(Quelle: sammyjoeosborne.com)
http://sammyjoeosborne.com/Examples/Connector/ConnectorExample.html
die einfachste Sache ist wohl mit
flash.geom.Point
. beide Zentrenc1
undc2
. nehmen Sie die Vektor -d
dass ist der Unterschied. je nach Winkel (315 bis 45, 45 bis 135, 135, 225, 225 bis 315) Sie wissen, welche Seiten betroffen sind (jeweils: rechts und Links, oben und unten, Links und rechts, oben und unten).berechnen Sie dann die Schnittpunkte zwischen jeder Seite und die Verbindungslinie zwischen den Zentren.
der Verbindungslinie der Zentren dargestellt werden kann, wie
p=t*v+c1
(spricht in Vektoren). stellen Sie die Seite als eine Zeile ein und berechnen Sie dannt
so dass beide Gleichungen ergeben die gleiche Stellep
, das ist die Kreuzung, die Sie suchen.