PathIterator im Uhrzeigersinn bzw. Gegen Uhrzeigersinn?

sirbender

Top Contributor
Hallo,

die Vektoren in einem PathIterator eines Shape bilden eine geschlossene Kette von "Pfeilen" die sich im Uhrzeigersinn bzw. im Gegenuhrzeigersinn anordnen.

Wie kann ich rausfinden ob fuer einen gegebenen PathIterator der Drehsinn ist?!
 

Harry Kane

Top Contributor
die Vektoren in einem PathIterator eines Shape bilden eine geschlossene Kette von "Pfeilen" die sich im Uhrzeigersinn bzw. im Gegenuhrzeigersinn anordnen.
Wie kann ich rausfinden ob fuer einen gegebenen PathIterator der Drehsinn ist?!
1. Eine Shape ist nicht notwendigerweise geschlossen.
2. Eine Shape besteht nicht aus "Vektoren", sondern aus Segmenten, die jeweils einem "Pfadtyp" (MoveTo, LineTo, CubicTo, QuadTo) zugeordnet werden können.
3. Bei den Typen CubicTo und QuadTo könnte man die Krümmung berechnen und so zwischen "Rechtsgekrümmt" (im Uhrzeigersinn) und "Linksgekrümmt" unterscheiden. Die Angabe der Krümmung bezieht sich aber nur auf ein Segment, und kann innerhalb eines PathIterators unterschiedlich sein.
Von daher würde ich deine Frage als "nicht beantwortbar" kategorisieren.
 

sirbender

Top Contributor
1. Eine Shape ist nicht notwendigerweise geschlossen.
2. Eine Shape besteht nicht aus "Vektoren", sondern aus Segmenten, die jeweils einem "Pfadtyp" (MoveTo, LineTo, CubicTo, QuadTo) zugeordnet werden können.
3. Bei den Typen CubicTo und QuadTo könnte man die Krümmung berechnen und so zwischen "Rechtsgekrümmt" (im Uhrzeigersinn) und "Linksgekrümmt" unterscheiden. Die Angabe der Krümmung bezieht sich aber nur auf ein Segment, und kann innerhalb eines PathIterators unterschiedlich sein.
Von daher würde ich deine Frage als "nicht beantwortbar" kategorisieren.

Ich habe ja gesagt eine geschlossene Vektorkette. Also auch einen geschlossenen Pfad/PathIterator.

Naja...wenn man die Vektorkette visualisiert (einfach Pfeile zeichnen) kann jeder Mensch (jetzt mal gaaanz verrueckt lange Vektorpfade ausgenommen) sofort sagen, so diese Kette im Uhrzeigersinn oder gegen den Uhrzeigersinn dreht. Auch wenn Teile der Vektorkette fuer sich betrachtet so aussehen, als wuerden sie in die andere Richtung gehen.

Ich glaube wenn ein Mensch so was detektieren kann, kann es ein Algorithmus auch.
 

CSHW89

Bekanntes Mitglied
Schau mal hier:
https://www.opengl.org/wiki/Calculating_a_Surface_Normal
Mit der Newell's Methode wirds wohl funktionieren. Ich denke mal du bist im zwei-dimensionalen Raum. Dann setzt du den z-Wert deiner Punkte alle auf 0. Der Vektor der berechnet wird, die Normale, zeigt dann entweder "aus dem Polygon" oder "in das Polygon". Das Vorzeichen des z-Werts zeigt dir die Richtung, und damit auch den Drehsinn. Ich denke, man kann den Algo noch vereinfachen, indem man nur den z-Wert der Normale berechnet, da du nur diesen brauchst.

lg Kevin
 

Ähnliche Java Themen


Oben