Download presentation
Presentation is loading. Please wait.
Published byJoshua Mills Modified over 6 years ago
1
CSCE 441 Computer Graphics: Clipping Polygons Jinxiang Chai
2
Reminder Required readings: HB 6-5 to 6-7
Homework#1 deadline is passed Homework #2 will be posted tonight, due by 9/29
3
Review: Clipping Points
Given a point (x, y) and clipping window (xmin, ymin), (xmax, ymax), determine if the point should be drawn (xmax,ymax) (x,y) xmin=<x<=xmax? (xmin,ymin) ymin=<y<=ymax?
4
Review: Clipping Lines
5
Review: Clipping Lines
6
Review Clipping Simple line clipping algorithm
- compute intersection points - clip the line segment between the outside point and intersection point Cohen-Sutherland - region coding (9 regions, 4bits) - best used when trivial acceptance and rejection is possible for most lines Liang-Barsky - computation of t-intersections is cheap (only one division) - computation of (x,y) clip points is only done once - algorithm doesn’t consider trivial accepts/rejects - best when many lines must be clipped
7
Clipping Polygons Clipping polygons is more complex than clipping the individual lines - Input: polygon
8
Clipping Polygons Clipping polygons is more complex than clipping the individual lines - Input: polygon - Output: original polygon, new polygon, or nothing
9
Why Is Polygon Clipping Hard?
What happens to a triangle during clipping? - possible outcomes: triangle->triangle triangle->quad triangle->5-gon
10
Why Is Polygon Clipping Hard?
What happens to a triangle during clipping? - possible outcomes: triangle, quad, or else?
11
Why Is Polygon Clipping Hard?
What happens to a triangle during clipping? - possible outcomes: triangle->triangle triangle->quad triangle->5-gon How many sides a clipped triangle might have?
12
How Many Sides? Seven
13
Why Is Clipping Hard? A really tough case
Concave polygon -> Multiple polygons
14
Why Is Clipping Hard? A really tough case
15
Outline Sutherland-Hodgman Clipping - convex polygons
Weiler-Atherton Algorithm - general polygons Required readings - HB 6-8
16
Any idea? Clipping polygon edges?
17
Any idea? Clipping polygon edges? Unconnected set of lines!
18
Sutherland-Hodgman Clipping
Basic idea: - consider each edge of the view window individually - clip the polygon against the view window edge’s equation
19
Sutherland-Hodgman Clipping
Basic idea: - consider each edge of the view window individually - clip the polygon against the view window edge’s equation
20
Sutherland-Hodgman Clipping
Basic idea: - consider each edge of the view window individually - clip the polygon against the view window edge’s equation
21
Sutherland-Hodgman Clipping
Basic idea: - consider each edge of the view window individually - clip the polygon against the view window edge’s equation
22
Sutherland-Hodgman Clipping
Basic idea: - consider each edge of the view window individually - clip the polygon against the view window edge’s equation
23
Sutherland-Hodgman Clipping
Basic idea: - consider each edge of the view window individually - clip the polygon against the view window edge’s equation
24
Sutherland-Hodgman Clipping
Basic idea: - consider each edge of the view window individually - clip the polygon against the view window edge’s equation
25
Sutherland-Hodgman Clipping
Basic idea: - consider each edge of the view window individually - clip the polygon against the view window edge’s equation
26
Sutherland-Hodgman Clipping
Basic idea: - consider each edge of the view window individually - clip the polygon against the view window edge’s equation
27
Sutherland-Hodgman Clipping
Basic idea: - consider each edge of the view window individually - clip the polygon against the view window edge’s equation - after doing all edges, the polygon is fully clipped
28
Sutherland-Hodgman Clipping
Java applet: click here.
29
Sutherland-Hodgman Clipping
Input/output for algorithm: - input: list of polygon vertices in order {abcdef} a f b e d c
30
Sutherland-Hodgman Clipping
Input/output for algorithm: - input: list of polygon vertices in order - output: list of clipped polygon vertices consisting of old vertices (maybe) and new vertices (maybe)
31
Sutherland-Hodgman Clipping
Input/output for algorithm: - input: list of polygon vertices in order - output: list of clipped polygon vertices consisting of old vertices (maybe) and new vertices (maybe) - exactly what expect from the clipping operation against each edge!
32
Sutherland-Hodgman Clipping
Basic routine: - Go around polygon one vertex at a time - Current vertex has position E - Previous vertex had position S, and it has been added to the output if appropriate a f b e d {abcdef} c
33
Sutherland-Hodgman Clipping
Basic routine: - Go around polygon one vertex at a time - Current vertex has position E - Previous vertex had position S, and it has been added to the output if appropriate a f b e d {abcdef} c
34
Sutherland-Hodgman Clipping
Edge from S to E takes one of four cases: inside outside inside outside inside outside inside outside E S E S E S E S I output E output E output I output no output
35
Sutherland-Hodgman Clipping
Four cases: S inside plane and E inside plane Add E to output Note: S has already been added S inside plane and E outside plane Find intersection point I Add I to output S outside plane and E outside plane Add nothing S outside plane and E inside plane Add I to output, followed by E
36
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
37
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
38
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
39
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
40
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
41
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
42
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E b
43
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
44
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
45
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
46
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
47
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
48
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
49
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
50
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
51
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
52
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
53
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
54
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
55
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
56
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
57
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
58
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
59
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
60
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
61
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
62
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
63
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
64
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
65
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
66
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
67
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
68
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
69
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
70
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
71
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
72
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
73
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
74
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
75
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
76
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
77
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
78
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E
79
Sutherland-Hodgman Algorithm
Out In No output Output E Output I Output I,E Possible error for non-convex polygons
80
Sutherland-Hodgman Algorithm
Easy to pipeline for parallel processing Polygon from one boundary does not have to be complete before next boundary starts Leads to substantial performance gains
81
Weiler-Atherton Algorithm
General polygon vs. polygon clipping Handles non-convex shapes Not as efficient as Sutherland-Hodgman Not easy to parallelize
82
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
83
Weiler-Atherton Algorithm
84
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
85
Weiler-Atherton Algorithm
86
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
87
Weiler-Atherton Algorithm
88
Weiler-Atherton Algorithm
89
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
90
Weiler-Atherton Algorithm
91
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
92
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
93
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
94
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
95
Weiler-Atherton Algorithm
96
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
97
Weiler-Atherton Algorithm
98
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
99
Weiler-Atherton Algorithm
100
Weiler-Atherton Algorithm
101
Weiler-Atherton Algorithm
102
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
103
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
104
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
105
Weiler-Atherton Algorithm
106
Weiler-Atherton Algorithm
107
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
108
Weiler-Atherton Algorithm
109
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
110
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
111
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
112
Weiler-Atherton Algorithm
113
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
114
Weiler-Atherton Algorithm
115
Weiler-Atherton Algorithm
Process the edges of the polygon fill area in a counterclockwise order until an inside-outside pair of vertices is encountered Follow the window boundaries in a counterclockwise direction from the exit-intersection point to another intersection point with the polygon - previously processed? - yes, go to the next step - no, continue processing polygon until a previously processed vertex is encountered Form the vertex list for this section of the clipped fill area Return to the exit-intersection point and continue processing the polygon edges in a counterclockwise order
116
Weiler-Atherton Algorithm
117
Weiler-Atherton Algorithm
118
Next Lecture 2D transformations y y x x y x
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.