Ergebnis 1 bis 7 von 7

Thema: Laufrichtung von Polygonen errechnen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Laufrichtung von Polygonen errechnen

    Hallo,

    Ich schreib ein kleines Programm, was den Weiler-Atherton-Clipping-Algorithmus erläutert.
    In diesem Programm kann der Benutzer selbst die Polygone erstellen, die bearbeitet werden sollen.
    Dieser Algorithmus und die Triangulierung von Polygonen benötigen die Laufrichtung der Eckpunkte.
    Ich hab bis jetzt nur ein Weg gefunden, wie man die Laufrichtung von konvexe Polygone errechnet, aber nicht für konkave Polygone. Und zwar, dass eine Gerade zwischen zwei Punkte berechnet wird und geschaut wird, wo der dritte Punkt liegt. Dies klappt aber, wie gesagt, nur für konvexe Polygone.

    Nun ist meine Frage, ob da jemand eine Idee hat? Oder welche Praktiken kommen da zum Einsatz?

    Ich hab da schon unter Google gesucht, aber bis jetzt nur Ideen gefunden, wie man sowas realisieren kann, die aber letzendlich zu keinem Ergebnis geführt haben.

    mfg
    Whiz-zarD

  2. #2
    Das beste was mir einfällt wär, den Normalvektor des Polygons zu berechnen und zu schaun ob der z-Wert negativ oder positiv ist. Eins von beiden bedeutet immer, dass es gegen den Uhrzeigersinn gerichtet ist und das andere, dass es im Uhrzeigersinn gerichtet ist. Mit Newells Method kann man sich scheinbar die Normale von concaven Polygonen berechnen: http://www.opengl.org/wiki/Calculating_a_Surface_Normal

  3. #3
    Schon mal Danke für den Link.
    Vielleicht hätte ich noch erwähnen sollen, dass ich mich mit Zwei-Dimensionalen Raum bewege und nicht im Drei-Dimensionalen Raum und dementsprechend eigentlich keine Z-Koordinate besitze.
    Wie würde es sich dann mit der Z-Achse verhalten? Würde diese Methode dennoch funktionieren, wenn ich z mit 1 definiere? ... mmh, müsste ich mal in den nächsten Tagen testen.

  4. #4
    Das macht nichts, du setzt z für jeden Eckpunkt einfach auf 0. ( bei Dreiecken könntest du den Eckpunkten sogar beliebige und auch unterschiedliche z-Werte geben, das Vorzeichen vom z-Wert der Normale wird gleich bleiben. Nur der Betrag ändert sich. Ich weiß aber nicht ob das auch für größere bzw. konkave Polygone gilt. )

    Geändert von nudelsalat (28.05.2011 um 07:30 Uhr)

  5. #5

    Geändert von Papa Justify (28.05.2011 um 11:28 Uhr)

  6. #6
    Zitat Zitat von Papa Justify Beitrag anzeigen
    Desweiteren: Definiere bitte "Laufrichtung"!
    In welche Richtung die Punkte angeordnet sind. Im oder gegen den Uhrzeigersinn.

  7. #7
    Zitat Zitat von nudelsalat Beitrag anzeigen
    Das macht nichts, du setzt z für jeden Eckpunkt einfach auf 0. ( bei Dreiecken könntest du den Eckpunkten sogar beliebige und auch unterschiedliche z-Werte geben, das Vorzeichen vom z-Wert der Normale wird gleich bleiben. Nur der Betrag ändert sich. Ich weiß aber nicht ob das auch für größere bzw. konkave Polygone gilt. )
    Danke.
    Dieser Algorithmus scheint tatsächlich zu funktionieren

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •