Background: I use code from An Efficient Test For A Point To Be In A Convex Polygon Wolfram Demonstration to check if a point ( mouse pointer ) is in a ( convex ) polygon. Clearly this code fails for non-convex polygons. Question: I am looking for an efficient routine to check if a 2D-point is in a polygon. Answer Using the function winding from Heike's answer to a related question winding[poly_, pt_] := Round[(Total@ Mod[(# - RotateRight[#]) &@(ArcTan @@ (pt - #) & /@ poly), 2 Pi, -Pi]/2/Pi)] to modify the test function in this Wolfram Demonstration by R. Nowak to testpoint[poly_, pt_] := Round[(Total@ Mod[(# - RotateRight[#]) &@(ArcTan @@ (pt - #) & /@ poly), 2 Pi, -Pi]/2/Pi)] != 0 gives Update: Full code: Manipulate[With[{p = Rest@pts, pt = First@pts}, Graphics[{If[testpoint[p, pt], Pink, Orange], Polygon@p}, PlotRange -> 3 {{-1, 1}, {-1, 1}}, ImageSize -> {400, 475}, PlotLabel -> Text[Style[If[testpoint[p, pt], "True "