30
Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No line crossings No holes V 1 V 2 V 3 V 4 Simple Polygon Line Crossing Hole

Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

  • Upload
    phamnhu

  • View
    258

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping

Polygon : Area primitive

Polygon Clipping

Simple Polygon: Planar set of ordered points No line crossings No holes

V1 V2

V3 V4

Simple Polygon Line Crossing Hole

Page 2: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping

Non-Convex Polygon

Polygon Clipping Polygon : Area primitive

Convex Polygon

Page 3: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

•  Window must be convex •  Polygon to be clipped can be convex or non-convex

Polygon

Window

Polygon

Page 4: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

•  Window must be convex •  Polygon to be clipped can be convex or non-convex

Page 5: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

Page 6: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

Page 7: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

Page 8: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

Page 9: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

Page 10: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

Approach •  Polygon to be clipped is given as v1, v2, !, vn •  Polygon edge is a pair [vi, vi+1] •  Process all polygon edges in succession against a window edge polygon (v1, v2, !, vn) polygon (w1, w2, !, wm) •  Repeat on resulting polygon with next window edge

Page 11: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

Approach

•  s = vi is the polygon edge starting vertex •  p = vi+1 is the polygon edge ending vertex •  i is a polygon-edge/window-edge intersection point •  wj is the next polygon vertex to be output

Four Cases

Page 12: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

Approach

•  p is next vertex of resulting polygon •  p wj and j+1 j

Case 1: Polygon edge is entirely inside the window edge Outside Inside

p

s

Output

Page 13: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

Approach

•  Intersection point i is next vertex of resulting polygon •  i wj and j+1 j

Case 2: Polygon edge crosses window edge going out Outside Inside

s Output

p

i

Page 14: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

Approach

•  No output

Case 3: Polygon edge is entirely outside the window edge Outside Inside

s

p

Page 15: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman

Approach Case 4: Polygon edge crosses window edge going in

Outside Inside s

p •  Intersection point i and p are next two vertices of resulting polygon •  i wj and p wj+1 and j+2 j

i Output

Page 16: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman Example

Polygon

Window

s1

s2 s3

s4 s5

Page 17: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman Example

s1

s2 s3

s4 s5

i1 i2

Page 18: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman Example

t5

t1 t2

t3 t4

Page 19: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman Example

u4

u5 u1

u2 u3

Page 20: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman Example

v3

v4 v5

v1 v2 i3

i4 i5

i6

Page 21: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Clipping Polygon Clipping Sutherland-Hodgman Example

w3

w6 w1

w2

w4 w5

Page 22: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Polygon Scan Conversion Polygon Filling Consider first triangle

Page 23: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Polygon Scan Conversion Polygon Filling Consider first triangle

Color all pixels inside triangle Inside (containment) test

Page 24: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Polygon Scan Conversion Polygon Filling Triangle

Use horizontal spans. Process horizontal spans in scan-line order. For the next spans use edge slopes XL XR

Page 25: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Polygon Scan Conversion Polygon Filling Polygon

How do we decide what parts of the span should be filled ?

Page 26: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Polygon Scan Conversion Polygon Filling Polygon

How do we decide what parts of the span should be filled ?

Parity check if odd fill if even don’t fill

Page 27: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Polygon Scan Conversion Polygon Filling Polygon

What happens here?

Page 28: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Polygon Scan Conversion Polygon Filling Polygon

What happens here?

Page 29: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No

Polygon Scan Conversion Polygon Filling Polygon

Recursive seed filling

Page 30: Polygon Clipping - cse.iitd.ernet.inpkalra/csl781/polygon-clipping-filling.pdf · Clipping Polygon : Area primitive Polygon Clipping Simple Polygon: Planar set of ordered points No