Pfeil zeichnen
-
Das Thema war schon vor kurzem hier im Forum.
Bye, TGGC (Pipe my World.)
-
TGGC schrieb:
Das Thema war schon vor kurzem hier im Forum.
Eine ID oder ein Link wären schon fein gewesen ...
-
das ist ein Link
-
Danke für den Link,
aber da gehts ja nun wohl wirklich nicht mehr um die Pfeile an Linien ...
-
Ist bestimmte nicht die effizienterste Lösung, aber das beste was mir innerhalb einer Minute eingefallen ist ;):
- Modelliere dir eine Pfeilspitze in einem lokalen Koordinatensystem - der Winkel der Pfeilspitze hat dabei x Grad
- Betrachte den Endpunkt deines Geradenstücks (da wo der Pfeil hin soll) als Drehpunkt
- rotiere die Pfeilspitze um x/2 Grad
- Verschiebe Pfeilspitze, so dass sie auf dem Endpunkt des Geradenstücks landet
- zeichne die Pfeilspitze
Cos und Sin kosten viel zeit – aber der Winkel der Pfeilspitze wird sich ja nicht oft verändern
-
2Atlantis schrieb:
Wie komme ich auf den Normalenvektor, ohne großartige mathematische Funktionen aufzurufen ... Bisher habe ich nur Integer-Operationen .. das fand ich ziemlich gut.
Wenn (x,y) der Richtungsvektor Deiner Linie ist, dann ist (y,-x) ein Normalvektor dazu.
-
2Atlantis schrieb:
Danke für den Link,
aber da gehts ja nun wohl wirklich nicht mehr um die Pfeile an Linien ...
Es geht darin auch nur darum, wie man eine orthogonale Linie berechnet
-
Okay, Normalenvektor:
Aber wenn ich den Bresesenham richtig verstanden habe, braucht der einen Anfangs- und einen Endpunkt. Wenn ich den Normalenvektor habe, also die Gerade, die senktrecht auf der eigentlichen Linie steht, brauche ich doch aber immernoch einen Endpunkt auf dem Normalenvektor. (Das sind dann meine äußersten Pfeilpixel) ... Wie kann man die bestimmen?
-
> Aber wenn ich den Bresesenham richtig verstanden habe, braucht der einen Anfangs- und einen Endpunkt. Wenn ich den Normalenvektor habe, also die Gerade, die senktrecht auf der eigentlichen Linie steht, brauche ich doch aber immernoch einen Endpunkt auf dem Normalenvektor. (Das sind dann meine äußersten Pfeilpixel) ... Wie kann man die bestimmen?
anscheinend hast du den Bresenham Algorithmus nicht verstanden
-
2Atlantis schrieb:
Wenn ich den Normalenvektor habe, also die Gerade, die senktrecht auf der eigentlichen Linie steht, brauche ich doch aber immernoch einen Endpunkt auf dem Normalenvektor. (Das sind dann meine äußersten Pfeilpixel) ... Wie kann man die bestimmen?
Ein Vektor kann als Richtung oder Koordinate interpretiert werden, aber nicht als beides gleichzeitig (also nicht als Gerade).
Hier mal ein kleiner Ansatz wie ich das gemeint hatte:
PfeilEnde1 = LinieStartpunkt + LinieVektor * 0.95 + LinieNormale * 0.1 PfeilEnde2 = LinieStartpunkt + LinieVektor * 0.95 - LinieNormale * 0.1
Du gehtst 95% entlang der Linie, dann biegst Du links oder rechts ab und läufst ein Stück davon weg. Die Längen sind so wahrscheinlich nicht hübsch, aber das wirst Du hinkriegen.