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-321 Dr. 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
CS-321 Dr. Mark L. Hornick 5 Odd-Even Result
CS-321 Dr. 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”
CS-321 Dr. Mark L. Hornick 7 Nonzero Winding Example −1 −2
CS-321 Dr. 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-321 Dr. Mark L. Hornick 9 Cross Product Example u=(1,1,0) V B =(2,0,0) V A =(1,0,0) E “−1” means u crosses E clockwise
CS-321 Dr. Mark L. Hornick 10 Cross Product Simplification negative means clockwise
CS-321 Dr. Mark L. Hornick 11 Computing Winding Number Compute dot product Use perpendicular to ray vs. edge If ray is given by (u x, u y ), perpendicular is (- u y, u x ) Sign of product determines direction +product implies “right-to-left” (add 1 to winding number) See text, page 128
CS-321 Dr. 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] V B =(2,0,0) V A =(1,0,0) E
CS-321 Dr. Mark L. Hornick 13 Dot Product Simplification Same result as from cross product!
CS-321 Dr. 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