1 / 14

Filling Graphical Shapes

Learn two approaches to determine if a point is inside or outside a shape: the Odd-Even Rule and Nonzero Winding Rule. Explore ray casting methods, edge crossings, winding numbers, and compute dot and cross products for accurate shape filling.

alvarezd
Télécharger la présentation

Filling Graphical Shapes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation 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

  4. One Approach:The Odd-Even Rule 0 • Choose an arbitrary point • Draw ray to a distant point • Don’t intersect any vertices • What’s a “distant” point? • Count edges crossed • Odd count means interior • Even count means exterior 1 2 1 3 1 2 CS-321Dr. Mark L. Hornick

  5. Odd-Even Result 1 2 1 1 3 CS-321Dr. Mark L. Hornick 1

  6. Another approach:Nonzero Winding Rule 0 • 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 -2 -1 -1 -1 0 CS-321Dr. Mark L. Hornick

  7. Nonzero Winding Example −1 −2 −1 −1 −1 −1 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) Seetext, page 128 CS-321Dr. Mark L. Hornick

  9. VA=(1,0,0) VB=(2,0,0) E u=(1,1,0) Cross Product Example “−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) Seetext, page 128 CS-321Dr. Mark L. Hornick

  12. Again, “−1” means u crosses E from left to right VA=(1,0,0) VB=(2,0,0) E u=(1,1,0), w = (−1,1,0) [“right-to-left” perpendicular to u] Dot Product Example 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 CS-321Dr. Mark L. Hornick

More Related