polygon filling
play

Polygon Filling Werner Purgathofer Linked Lists flexible data - PowerPoint PPT Presentation

Einfhrung in Visual Computing 186.822 Polygon Filling Werner Purgathofer Linked Lists flexible data structure x 1 x 2 pointer data (link to next element) list^ list^.next^ list x 1 x 2 x 1 x 2 x 1 x 2 list^.next


  1. Einführung in Visual Computing 186.822 Polygon Filling Werner Purgathofer

  2. Linked Lists flexible data structure … x 1 x 2 pointer data (link to next element) list^ list^.next^ list … … … x 1 x 2 x 1 x 2 x 1 x 2 list^.next list^.next^.next Werner Purgathofer / Einf. in Visual Computing 2

  3. Linked Lists: Removal of First Element list 1 2 3 4 5 list = list^.next Werner Purgathofer / Einf. in Visual Computing 3

  4. Linked Lists: Inserting New First Element list 1 2 3 4 5 new 0 new^.next = list Werner Purgathofer / Einf. in Visual Computing 4

  5. Linked Lists: Inserting New First Element list 1 2 3 4 5 new 0 new^.next = list list = new Werner Purgathofer / Einf. in Visual Computing 5

  6. Linked Lists: Exchanging Elements 2 & 4 last1 help last2 list 1 2 3 4 5 help = last1^.next^.next Werner Purgathofer / Einf. in Visual Computing 6

  7. Linked Lists: Exchanging Elements 2 & 4 last1 help last2 list 1 2 3 4 5 help = last1^.next^.next last1^.next^.next = last2^.next^.next Werner Purgathofer / Einf. in Visual Computing 7

  8. Linked Lists: Exchanging Elements 2 & 4 last1 help last2 list 1 2 3 4 5 help = last1^.next^.next last1^.next^.next = last2^.next^.next last2^.next^.next = help Werner Purgathofer / Einf. in Visual Computing 8

  9. Linked Lists: Exchanging Elements 2 & 4 last1 help last2 list 1 2 3 4 5 help = last1^.next^.next last1^.next^.next = last2^.next^.next last2^.next^.next = help help = last1^.next Werner Purgathofer / Einf. in Visual Computing 9

  10. Linked Lists: Exchanging Elements 2 & 4 last1 help last2 list 2 3 4 5 1 help = last1^.next^.next last1^.next^.next = last2^.next^.next last2^.next^.next = help help = last1^.next last1^.next = last2^.next Werner Purgathofer / Einf. in Visual Computing 10

  11. Linked Lists: Exchanging Elements 2 & 4 last1 help last2 list 1 2 4 5 3 help = last1^.next^.next last1^.next^.next = last2^.next^.next last2^.next^.next = help help = last1^.next last1^.next = last2^.next last2^.next = help Werner Purgathofer / Einf. in Visual Computing 11

  12. Repetition: What is Inside a Polygon? odd-even rule nonzero-winding- number rule ??? Werner Purgathofer / Einf. in Visual Computing 12

  13. Inside-Outside Tests area-filling algorithms “interior”, “exterior” for self-intersecting polygons? odd-even rule nonzero-winding-number rule same result for simple polygons Werner Purgathofer / Einf. in Visual Computing 13

  14. What is Inside?: Odd-Even Rule inside/outside switches at every edge straight line to the outside: even # edge intersections = outside odd # edge intersections = inside 4 3 2 1 2 1 2 1 4 3 1 1 2 3 Werner Purgathofer / Einf. in Visual Computing 14

  15. What is Inside?: Nonzero Winding Number point is inside if polygon surrounds it straight line to the outside: same # edges up and down = outside different # edges up and down = inside Werner Purgathofer / Einf. in Visual Computing 15

  16. Fill-Area Primitives for polygon area (solid-color, patterned) scan-line polygon fill algorithm intersection points located and sorted consecutive pairs define interior span attention with vertex intersections exploit coherence (incremental calculations) flood fill algorithm Werner Purgathofer / Einf. in Visual Computing 16

  17. Scan-Line Fill: Sorted Edge Table E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A The sorted edge table contains all polygon edges sorted by lowest y-value y max x start 1/m Werner Purgathofer / Einf. in Visual Computing 17

  18. Scan-Line Fill: Sorted Edge Table sort all edges by smallest y-value edge entry: [max. y-value, x-intercept, inverse slope] y B x C 1/m CB y D x C 1/m CD active-edge list for each scan line contains all edges crossed by that scan line incremental update consecutive intersection pairs (spans) filled Werner Purgathofer / Einf. in Visual Computing 18

  19. Sorted Edge Table E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A The sorted edge table contains all polygon edges sorted by lowest y-value y max x start 1/m Werner Purgathofer / Einf. in Visual Computing 19

  20. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List When processing from bottom to top, keep a list of all active edges Werner Purgathofer / Einf. in Visual Computing 20

  21. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List incremental update! y F x A 1/m AF y B x A 1/m AB Werner Purgathofer / Einf. in Visual Computing 21

  22. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List y F x A 1/m AF y B x A 1/m AB Werner Purgathofer / Einf. in Visual Computing 22

  23. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List y E x F 1/m FE y B x A 1/m AB Werner Purgathofer / Einf. in Visual Computing 23

  24. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List y E x F 1/m FE y B x A 1/m AB Werner Purgathofer / Einf. in Visual Computing 24

  25. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List y E x F 1/m FE y B x A 1/m AB Werner Purgathofer / Einf. in Visual Computing 25

  26. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List y E x F 1/m FE y B x A 1/m AB y B x C 1/m CB y D x C 1/m CD Werner Purgathofer / Einf. in Visual Computing 26

  27. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List y E x F 1/m FE y B x A 1/m AB y B x C 1/m CB y D x C 1/m CD Werner Purgathofer / Einf. in Visual Computing 27

  28. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List y E x F 1/m FE y D x C 1/m CD Werner Purgathofer / Einf. in Visual Computing 28

  29. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List y E x F 1/m FE y D x C 1/m CD Werner Purgathofer / Einf. in Visual Computing 29

  30. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List y E x F 1/m FE y E x D 1/m DE Werner Purgathofer / Einf. in Visual Computing 30

  31. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List y E x F 1/m FE y E x D 1/m DE Werner Purgathofer / Einf. in Visual Computing 31

  32. Sorted Edge Table / Active Edge List E y E x D 1/m DE D B y B x C 1/m CB y D x C 1/m CD C F y E x F 1/m FE y F x A 1/m AF y B x A 1/m AB A Active Edge List Werner Purgathofer / Einf. in Visual Computing 32

  33. Scan-Line Fill: Incremental Update incremental update of intersection point slope of polygon boundary line: m 1 = + = + x x y y 1 m k+1 k k+1 k (for 2 successive scanlines) (x k+1 , y k+1 ) y k + 1 (x k , y k ) y k Werner Purgathofer / Einf. in Visual Computing 33

  34. Scan-Line Fill: Intersecting Vertices 2 intersection 1 points along scan lines that 1 2 intersect polygon 2 vertices → either special handling (1 or 2 intersections?) → or move vertices up or down by ε Werner Purgathofer / Einf. in Visual Computing 34

  35. Flood-Fill Algorithm pixel filling of area areas with no single color boundary start from interior point “flood” internal region 4-connected, 8-connected areas reduce stack size by eliminating several recursive calls Werner Purgathofer / Einf. in Visual Computing 35

  36. Flood-Fill: Boundary and Seed Point area must be distinguishable from boundaries seed point example: area defined within multiple color boundaries Werner Purgathofer / Einf. in Visual Computing 36

  37. Flood-Fill: Connectedness Definition: Definition: 4-connected means, that a 8-connected means, that a connection is only valid in connection is valid in these these 4 directions 8 directions Werner Purgathofer / Einf. in Visual Computing 37

  38. Examples for 4-connected and 8-connected a 4-connected area an 8-connected area has an 8-connected border has a 4-connected border Werner Purgathofer / Einf. in Visual Computing 38

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend