1 filling graphical shapes. 2 we know how to draw outlines can we just fill the “inside”? …but...
Post on 01-Jan-2016
214 Views
Preview:
TRANSCRIPT
1
Filling Graphical Shapes
2
We know how to draw outlines
Can we just fill the “inside”? …but how do we know the difference
between the inside and outside? Can we determine if a point is inside a shape?
3
A Filling Anomaly
CS-321Dr. Mark L. Hornick
4
One Approach:The Odd-Even Rule
1. Choose an arbitrary point
2. Draw ray to a distant point Don’t intersect any vertices What’s a “distant” point?
3. Count edges crossed Odd count means interior Even count means exterior
1
1
1
3
2
0
2
CS-321Dr. Mark L. Hornick
5
Odd-Even Result
1
1
1
1
3
2
CS-321Dr. Mark L. Hornick
6
Another approach:Nonzero Winding Rule Choose a point Draw ray to a distant point
Don’t intersect any vertices Consider edges crossed
(right hand rule) Subtract 1 when ray to edge
is clockwise Add 1 when ray to edge is
counter-clockwise Nonzero count means
interior Count = “Winding number”
-1
-1
-1
-1
-2
0
0
CS-321Dr. Mark L. Hornick
7
Nonzero Winding Example
−1
−1
−1
−1
−1
−2
CS-321Dr. Mark L. Hornick
8
Computing Winding Number
Compute cross product Between ray and edge Sign of z value determines direction
+z implies CCW (add 1 to winding number)
See text, page 128
CS-321Dr. Mark L. Hornick
9
Cross Product Example
u=(1,1,0)
VB=(2,0,0)
VA=(1,0,0) E
“−1” means u crosses E clockwise
CS-321Dr. Mark L. Hornick
10
Cross Product Simplification
negative means clockwise
CS-321Dr. Mark L. Hornick
11
Computing Winding Number
Compute dot product Use perpendicular to ray vs. edge
If ray is given by (ux, uy), perpendicular is (- uy, ux)
Sign of product determines direction +product implies “right-to-left” (add 1 to winding
number)
See text, page 128
CS-321Dr. Mark L. Hornick
12
Dot Product Example
Again, “−1” means u crosses E from left to right
u=(1,1,0), w = (−1,1,0) [“right-to-left” perpendicular to u]
VB=(2,0,0)
VA=(1,0,0) E
CS-321Dr. Mark L. Hornick
13
Dot Product Simplification
Same result as from cross product!
CS-321Dr. Mark L. Hornick
14
Inside-Outside Tests Summary
Odd-even rule Generalized from scan-line fill May produce unusual results if edges
intersect Nonzero winding number rule
Alternate way of determining interior
top related