• Keine Ergebnisse gefunden

≠ Polygon Clipping in 2D

N/A
N/A
Protected

Academic year: 2021

Aktie "≠ Polygon Clipping in 2D"

Copied!
16
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 35

C C

Polygon Clipping in 2D

 Clipping ist symmetrisch

 Polygon Clipping ist komplex

 Sogar bei konvex Polygonen

 Polygon Clipping

Clipping der Liniensegmente!

falsch!

C G C C G C

 Polygon-Clipping kann, insbesondere bei nicht- konvexen Polygonen, unangenehm werden

 Es können sogar mehrere Polygone entstehen

(2)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 37

C G C C G C

Fazit: das naïve Polygon-Clipping ist schon

(3)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 39

C C

Sutherland-Hodgman

 Clipping eines Polygonzugs gegen ein konvexes Clip-Polygon (z.B. Viewport); der Polygonzug darf konkav sein

Clip-Window Polygonzug

Ergebnis

C G C C G

Vorgehen

C

 Eingabe =

 Liste der Eckpunkte in der richtigen Reihenfolge (gegen den Uhrzeigersinn)

 Menge von Clip-Kanten, die ein konvexes Clip-Window definieren

 Betrachte eine (beliebige) Clip-Kante:

 Nach dem Schnitt mit dieser Clip-Kante wird eine neue Liste von Eckpunkten erzeugt

 Dieses Ergebnis ist wieder ein geschlossener Polygonzug

 Alle Punkte des neuen Polygons befinden sich auf der "Innenseite" (der

"richtigen" Seite) dieser Clip-Kante (Schleifeninvariante)

 Das wird mit allen Clip-Kanten wiederholt

 (Im Prinzip ist die Reihenfolge der Clip-Kanten egal)

(4)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 41

Der Polygonzug wird der Reihe nach an den Clip-Kanten geschnitten

C G C C G

4 Fälle

C

 Annahme: der Punkt A wurde bereits behandelt

Beide Punkte drinnen:  Output B A

B Linie „zeigt“

nach außen:  Output S A

B S

Linie „zeigt“

nach innen:  Output S, B A

B S

Beide Punkte draußen:  kein Output A

B

(5)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 43

C C

Beispiel

Input:

Output:

Man beginnt mit der Kante [letzter Punkt – erster Punkt], hier also D-A.

(D wird am Ende der Schleife betrachtet)

A B C D A B C A

B C

D

S

1

S

1

S

2

S

2

C G C C G C

Input:

Output:

A B C S

1

S

2

A C

S

1

A C

S

1

S

6

S

6

S

3

S

3

S

4

S

4

S

5

S

5

S

2

B

(6)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 45

 Kleines Problem des Sutherland-Hodgeman-Algos: falls das ursprüngliche Polygon in mehrere Teile zerfällt beim Clipping, dann entsteht eine unschöne Polygonkante am Rand des Windows

 Beispiel:

A

B C

D

C G C C G C

Eingabe:

P

1

P

1

P

2

P

3

P

4

P

5

P

6

P

7

P

8

P

2

P

3

P

4

P

5

P

6

P

7

P

8

(7)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 48

C C

Etwas komplexeres Beispiel

Eingabe:

Ausgabe:

P

1

P

2

P

3

P

4

P

5

P

6

P

7

P

8

I

1

P

2

P

3

P

4

P

5

I

2

I

3

P

7

I

4

P

1

P

2

P

3

P

4

P

5

P

6

P

7

P

8

I

1

I

2

I

4

I

3

C G C C G C

Eingabe:

Ausgabe:

I

1

P

2

P

3

P

4

P

5

I

2

I

3

P

7

I

4

I

1

I

5

I

6

P

4

P

5

I

2

I

3

P

7

I

4

I

1

I

3

I

4

P

7

I

2

I

5

P

2

P

5

P

4

I

6

P

3

(8)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 50

Eingabe:

Ausgabe:

I

1

I

5

I

6

P

4

P

5

I

2

I

3

P

7

I

4

I

7

I

8

I

6

P

4

I

9

I

10

I

3

P

7

I

4

P

4

I

9

I

3

P

7

I

8

I

6

I

4

I

1

I

2

P

5

I

5

I I

7 7,10

C G C C G C

Ausgabe:

I

7

I

8

I

6

P

4

I

9

I

10

I

3

P

7

I

4

I

7

P

4

I

9

I

3

P

7

I

7,10

I

8

I

6

I

4

(9)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 56

C C

Der Algoithmus von Weiler-Atherton

 Strategie: "Wandere" auf dem Polygonzug oder dem Window- Rand

 Konvention (wie immer): Polygone sind CCW orientiert

C G C C G C

 Berechne alle Schnittpunkte

 Markiere die Punkte, an denen das Polygon in das Clipping- Window eintritt (hier grün)

(10)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 58

 Solange noch ein unbearbeiteter Eintrittsschnittpunkt vorhanden ist wird das Polygon weiter umlaufen

 Die Ausgabe ist (wie bei Sutherland-Hodgman) ein oder mehrere Listen von Punkten (Eckpunkte des Polygons, Schnittpunkte, und/

oder Eckpunkte des Windows)

 Unterschied: die Eingabe wird nur einmal abgearbeitet

C G C C G

Umlauf-Regeln C

 Trifft man beim Umlauf auf einen Schnittpunkt, dann:

 Füge Schnittpunkt zur Ausgabe hinzu

 Falls Schnittpunkt = "Out-to-in": folge dem Polygonzug (ccw)

 Falls Schnittpunkt = "In-to-out": folge dem Window-Rand (ccw)

(11)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 60

C C

 Solange noch ein unbearbeiteter Eintrittsschnittpunkt vorhanden ist wird das Polygon weiter umlaufen

 Der Weiler-Atherton-Algorithmus erzeugt echt separate Polygonzüge für jedes sichtbare Fragment

C G C C G

Implementierung des Algorithmus

C

 Eingabe (hier ist die Konvention clockwise ordering):

1 2 3 5 4 6 8 7 9

0 a

b

c

d

a b

d c 0

1

2

4 3

5 6

8 7

9

i j

k

clip window

Polygon

Zyklische Liste der Vertices des

Clip-Windows

l

(12)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 62

 Finde die Schnittpunkte und füge sie in beide Listen ein

1 2 3 5 4 6 8 7 9 0

a

b

c

d

a b

d c 0

1

2

4 3

5 6

8 7

9

i j

k

i Add Vertex i:

l

C G C C G C

 Finde die Schnittpunkte und füge sie in beide Listen ein

1 2 3 5 4 6 8 7 9 0

a

b

c

d

a b

d c 0

1

2

4 3

5 6

8 7

9

i j

k

l

i Add Vertex l:

l

(13)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 64

C C

 Finde die Schnittpunkte und füge sie in beide Listen ein

1 2 3 5 4 6 8 7 9 0

a

b

c

d

a b

d c 0

1

2

4 3

5 6

8 7

9

i j

k

i Add Vertex k:

k l

l

C G C C G C

 Finde die Schnittpunkte und füge sie in beide Listen ein

1 2 3 5 4 6 8 7 9 0

a

b

c

d

a b

d c 0

1

2

4 3

5 6

8 7

9

i j

k

i Add Vertex j:

j l

k l

(14)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 66

 Klassifiziere jeden Schnittpunkt als „entering“ oder „leaving“

entering leaving

1 2 3 5 4 6 8 7 9 0

a

b

c

d

a b

d c 0

1

2

4 3

5 6

8 7

9

i j

k

i

j l

k l

C G C C G C

 Erzeuge das geclippte Polygon:

 Starte bei einem "entering"-Vertex

 Falls man auf einen "leaving"-Vertex trifft, dann wechsle auf die Liste des Clip- Polygons (blaue Zeiger)

 Falls man auf einen "entering"-Vertex trifft, dann wechsle auf die Liste des Polygons (schwarze Zeiger)

 Eine Polygonzug ist beendet, wenn der Startpunkt wieder erreicht ist

 Wiederhole, solange noch unbesuchte

"entering"-Vertices vorhanden sind

entering leaving

1 2 3 5 4 6 8 7 9 0

a

b

c

d i

j k l

(15)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 68

C C

Beispiel

 Polygonzug 1 = l, 4, 5, k

 Polygonzug 2 = j, 9, 0, l

entering leaving

1 2 3 5 4 6 8 7 9 0

a

b

c

d i

j k l

a b

d c 0

1

2

4 3

5 6

8 7

9

i j

k

l

C G C C G

Robustheit, Präzision, Entartungen C

 Die üblichen (leidigen) Fragen:

 Was passiert wenn ein Vertex (beinahe) auf dem Rand des anderen Polygonzuges liegt?

(16)

G. Zachmann Computer-Graphik 1 - WS 09/10 Clipping 70

 Ältere Hardware machte volles Clipping

 Moderne Hardware vermeidet Clipping weitgehend:

 Nur bzgl. der Ebene z=z0

 Im Allgemeinen ist es nützlich, Clipping zu kennen, da es viele ähnliche

geometrische Probleme und Algorithmen gibt, z.B.:

 Zur Bestimmung, welche Objekte innerhalb eines "Picking-Frustums" liegen

 Schnittpunkte zwischen Objekten

 Berechnung analytischer Schatten

Modeling Transformations

Illumination (Shading) Viewing Transformation (Perspective / Orthographic)

Clipping Projection (to Screen Space)

Scan Conversion (Rasterization) Visibility / Display

C G C C G C

Referenzen

ÄHNLICHE DOKUMENTE

Nach Abschalten der Falle, in der die Wolke auf eine Temperatur um die Fermi­Temperatur abgekühlt wird, breiten sich die Atome in einem La­.. serspeckle­Potential aus

Obwohl die Resultate der Operation bezüglich der Mitralinsuffizienz sehr gut sind, wird sie für einige Patienten erst verspätet durchgeführt oder ist aufgrund von Morbidität

Das Dilemma einer Argumentation bei Tempo 130 ist ja ähnlich wie beim Rauchen: Dagegen kann man eigentlich nicht sein, weil die oberen 50 % des Geschwindigkeits­.. bereichs bis

Große zeitliche Flexibilität wird auch von den 12 Prozent der abhängig Beschäftigten verlangt, die im Bereitschaftsdienst arbeiten oder Rufbereitschaft leisten.. Von über einem

Das Wissen um diese Motive ermöglicht es zum einen, sich vor Augen zu führen, was eine systematische, strukturierte Auseinandersetzung mit psychischer Belastung im Unternehmen

Die störende Sprache mit diesem Pegel ist also durch ein darauf abgestimmtes Geräusch zu maskieren. Wie oben erwähnt, ist davon auszu- gehen, dass für ein nahezu ungestörtes Arbeiten

wenn eine Ladung verschoben wird Magnetische Kraft verrichtet keine Arbeit, da die Kraft senkrecht

Wenn man die Erinnerungen von Menschen, die vertrieben wurden und die sich in England und Israel eine neue Heimat gefunden haben, auf die Bühne bringen will, dann braucht es vor