Sergej Petuhov Paul Frühauf - uni-hamburg.de

46
Polygone Clipping Polygonoffsetting Polygone, Clipping, Polygonoffsetting Sergej Petuhov & Paul Frühauf Proseminar: 3D-Druck-Verfahren 1

Transcript of Sergej Petuhov Paul Frühauf - uni-hamburg.de

Page 1: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Polygone Clipping Polygonoffsetting

Polygone, Clipping, Polygonoffsetting

Sergej Petuhov&

Paul Frühauf

Proseminar: 3D-Druck-Verfahren

1

Page 2: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Gliederung

Clipping PolygonoffsettingPolygone

I. Polygone1). Definition2). Konkav, konvex und überschlagen

II. Clipping1). Was ist Clipping2). Clipping von Strecken3). Polygonclipping4). Nutzen von Clipping

III. Polygonoffsetting1). Polygonoffsetting2). Umlaufzahlen3). Inneres/- Äußeres Offset

2

Page 3: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Definition

Polygone Clipping Polygonoffsetting

Ein Polygon ist eine Figur, die durch ein Tupel von verschiedenen Punkten definiert ist. Die Punkte heißen die Eckpunkte oder kurz Ecken des Polygons, ein Polygon mit -Ecken heißt auch …-Eck. (Poly = Viel; gon = eck)

3

Page 4: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Konkav

Polygone Clipping Polygonoffsetting

4

- Nach innen gewölbt- Innenwinkel über 180°- Mind. 2 Seiten nach

innen gewölbt

Page 5: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Konvex

Polygone Clipping Polygonoffsetting

5

- Nach außen gewölbt- Innenwinkel unter 180°- Mind. ein Innenwinkel über

180° != konvex

Page 6: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Konvex

Polygone Clipping Polygonoffsetting

6

- Nach außen gewölbt- Innenwinkel unter 180°- Mind. ein Innenwinkel über

180° != konvex

Ist der Bauch konkav, war das Mädchen brav. Ist der Bauch konvex, hatte das Mädchen Sex.

Page 7: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Überschlagen

Polygone Clipping Polygonoffsetting

7

- Kanten berühren sich nicht nur in den Eckpunkten

- Das Gegenteil von einfachen Polygonen

Page 8: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Zusammenfassung

Polygone Clipping Polygonoffsetting

8

Page 9: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Was ist Clipping

Polygone Clipping Polygonoffsetting

9

„Clipping“ bedeutet das Abschneiden eines Grundobjektesanhand eines Bildschirmfensters. Ein Fenster kann dabei ein beliebiges Polygon sein. Das sog. Clip Polygon.

Page 10: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Clipping von Strecken

Polygone Clipping Polygonoffsetting

10

• P und Q sind beide Endpunkte einer Strecke

• P und Q liegen im Rechteckfenster (grün)

• P und Q liegen außerhalb des Rechteckfensters. (Das Fenster durchquerend) (blau)

• P oder Q liegen im Rechteckfenster (gelb)

• P und Q liegen außerhalb des Rechteckfensters (rot)

Page 11: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Clipping von Strecken Algorithmus

Polygone Clipping Polygonoffsetting

11

Cohen-Sutherland Algorithmus

Page 12: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Clipping von Strecken Algorithmus

Polygone Clipping Polygonoffsetting

12

Schritt 1: Zwei Endpunkte bestimmen (x1,y1) und (x2,y2)

Schritt 2: Outcode von den Endpunkten bestimmen• Outcode der Endpunkte = 0000 => Linie innerhalb• AND Operation beider Outcodes != 0000 => Linie außerhalb

Schritt 3: • xMin/xMax überschritten => y = y1 + m (x – x1)• yMin/yMax überschritten => x = x1 + (y – y1) / m

Schritt 4: Wenn der neu berechnete Punkt (x,y) die folgenden Bedingungen nicht erfüllt, wiederhole Schritt 3.• xMin <= x <= xMax• yMin <= y <= yMax

Page 13: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Clipping von Strecken Algorithmus

Polygone Clipping Polygonoffsetting

13

Page 14: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Clipping von Strecken Algorithmus

Polygone Clipping Polygonoffsetting

14

Page 15: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Clipping von Strecken Algorithmus

Polygone Clipping Polygonoffsetting

15

Page 16: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Clipping von Strecken Algorithmus

Polygone Clipping Polygonoffsetting

16

Page 17: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Clipping von Strecken Algorithmus

Polygone Clipping Polygonoffsetting

17

Page 18: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Polygonclipping

Polygone Clipping Polygonoffsetting

18

- Kanten des Polygons müssen vollständig, teilweise oder gar nicht übernommen werden

- Neue Kanten müssen aufgenommen werden

- Aus einem Polygon können beim Clipping mehrere Polygone entstehen

Page 19: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Polygonclipping

Polygone Clipping Polygonoffsetting

19

Sutherland-Hodgman Algorithmus

Page 20: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Polygonclipping

Polygone Clipping Polygonoffsetting

20

Page 21: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Polygonclipping

Polygone Clipping Polygonoffsetting

21

Weiler-Atherton Algorithmus

Page 22: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Polygonclipping

Polygone Clipping Polygonoffsetting

22

- Nur konvexe Polygone möglich

Page 23: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Polygonclipping

Polygone Clipping Polygonoffsetting

23

- valide Flächen werden weggeclipped

Page 24: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Nutzen von Clipping

Polygone Clipping Polygonoffsetting

24

• Grafikspeicher wird nicht zugemüllt• Halbkugeln zeichnen (abgeschnittene

Objekte)

Page 25: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Polygonoffsetting

Polygone Clipping Polygonoffsetting

25

Problem:• Schwierig zwei sich schneidende Polygone zu Zeichen.

• Führt zu Anzeigefehlern.

Lösung:• Eins der Polygone kriegt ein Offset.

• Polygon wird an derselben Stelle vor einem anderen gezeichnet.

Page 26: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Umlaufzahlen

Polygone Clipping Polygonoffsetting

26

• Windungszahlen

• Definition: Die Windungszahl einer Kurve Gamma in Bezug auf einen Punkt z0 stellt die Anzahl der Umrundungen entgegen der Uhrzeigerrichtung um z0 dar, wenn man dem Verlauf der Kurve folgt. Eine Umrundung in Uhrzeigerrichtung ergibt eine negative Windungszahl

Page 27: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Windungszahlen

Polygone Clipping Polygonoffsetting

27

Windungszahl = 0 => außerhalb des Polygons

Windungszahl != 0 => innerhalb des Polygons

Page 28: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Windungszahlen

Polygone Clipping Polygonoffsetting

28

Page 29: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Windungszahlen

Polygone Clipping Polygonoffsetting

29

Schritt 1: Halbgerade zeichnen.Schritt 2: Setzte W = 0.Schritt 3: Schnittpunkt mit Polygonkanten.• Polygonkante verläuft von rechts nach links => W + 1.• Polygonkante verläuft von links nach rechts => W – 1.Schritt 4: Wiederholen für alle Schnittpunkte.Schritt 5: W = Windungszahl

Windungszahl = 0 => außerhalb des Polygons

Windungszahl != 0 => innerhalb des Polygons

Page 30: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Beispiel

Polygone Clipping Polygonoffsetting

30

Page 31: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Beispiel

Polygone Clipping Polygonoffsetting

31

Page 32: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Inneres / Äußeres Offset

Polygone Clipping Polygonoffsetting

32

Inneres Offset• Polygon wird nach Innen abgesetzt

Äußeres Offset• Polygon wird nach außen abgesetzt

Page 33: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Inneres Offset

Polygone Clipping Polygonoffsetting

33

Schritt 1: Jede Kante nach ihnen absetzten

Schritt 2: Verbinden der Linien

Schritt 3: Berechnung der Umlaufzahlen

Schritt 4: Entfernen von ungültigen Stellen

Ablauf für inneres Offset

Page 34: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Inneres Offset

Polygone Clipping Polygonoffsetting

34

Schritt 1: Jede Kante nach ihnen absetzten

Page 35: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Inneres Offset

Polygone Clipping Polygonoffsetting

35

Schritt 2: Verbinden der Linien

Page 36: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Inneres Offset

Polygone Clipping Polygonoffsetting

36

Schritt 3: Berechnung der Umlaufzahlen

Page 37: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Inneres Offset

Polygone Clipping Polygonoffsetting

37

Schritt 4: Entfernen von ungültigen Stellen

Page 38: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Äußeres Offset

Polygone Clipping Polygonoffsetting

38

Schritt 1: Jede Kante nach außen absetzten

Schritt 2: Verbinden der Linien durch runde Bögen.

Schritt 3: Berechnung der Umlaufzahlen

Schritt 4: Entfernen von ungültigen Stellen

Ablauf für äußeren Offsets

Page 39: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Äußeres Offset

Polygone Clipping Polygonoffsetting

39

Schritt 1: Jede Kante nach außen absetzten

Page 40: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Äußeres Offset

Polygone Clipping Polygonoffsetting

40

Schritt 2: Verbinden der Linien durch runde Bögen.

Page 41: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Äußeres Offset

Polygone Clipping Polygonoffsetting

41

Schritt 3: Berechnung der Umlaufzahlen

Page 42: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Äußeres Offset

Polygone Clipping Polygonoffsetting

42

Schritt 4: Entfernen von ungültigen Stellen

Page 43: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Wozu braucht man Polygone im 3D Druck?

Polygone Clipping Polygonoffsetting

43

Jedes Objekt besteht aus einer Vielzahl von Polygonen!

Page 44: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Quellen

Polygone Clipping Polygonoffsetting

44

• https://de.wikipedia.org/wiki/Algorithmus_von_Cohen-Sutherland• https://de.wikipedia.org/wiki/Clipping_(Computergrafik)• https://www.die-

informatiker.net/topic/Computergrafik_SS11/Warum_Clipping/14861• https://wiki.delphigl.com/index.php/Clipping• http://search.r-project.org/library/polyclip/html/polyoffset.html• https://tams.informatik.uni-

hamburg.de/lectures/2015ss/seminar/3dp/presentations/polygone_stenzel.pdf

Page 45: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Quellen

Polygone Clipping Polygonoffsetting

45

• http://delivery.acm.org/10.1145/130000/129906/p56-vatti.pdf?ip=134.100.29.211&id=129906&acc=ACTIVE%20SERVICE&key=2BA2C432AB83DA15%2EBB626F2563133BE7%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35&CFID=793561939&CFTOKEN=53977179&__acm__=1464782871_50df05f11a6622bf7e25b016a639d525

• https://de.wikipedia.org/wiki/Windungszahl• https://people.eecs.berkeley.edu/~sequin/CS285/PAPERS/OffsetPolygon.pdf• http://www.3dsource.de/faq/polygonoffset.html• https://www.researchgate.net/publication/256504043_Variable_fused_deposition_

modelling_-_concept_design_and_tool_path_generation

Page 46: Sergej Petuhov Paul Frühauf - uni-hamburg.de

Quellen

Polygone Clipping Polygonoffsetting

46

• Bilder: • https://mpi.fs.tum.de/wordpress/wp-content/uploads/2015/06/infill.jpg• https://www.3d-grenzenlos.de/wp/wp-content/uploads/2015/05/3d-modell-

voronoi.jpg• https://www.rapidobject.com/csdata/image/1/de/3d-figur-modell-aus-polygonen-

ergeben-ein-drahtgitternetz-polygonnetz_1024_400.jpg• http://ulrichmerz.com/wordpress/wp-content/gallery/jgm/jgm_08_web_big.jpg• Bilder aus dem Paper• Selbstgemachte Bilder