MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: testing if a point is inside a polygon

  • To: mathgroup at smc.vnet.net
  • Subject: [mg96263] Re: testing if a point is inside a polygon
  • From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
  • Date: Tue, 10 Feb 2009 05:53:41 -0500 (EST)
  • References: <gmp0mt$btn$1@smc.vnet.net>

Here is a function based on the code in Robert Sedgewick's Algorithms
book:

PointInPoly[{x_, y_}, poly_List] :=
 Module[{i, j, c = False, npol = Length[poly]},
  For[i = 1; j = npol, i <= npol, j = i++,
   If[((((poly[[i, 2]] <= y) && (y <
             poly[[j, 2]])) || ((poly[[j, 2]] <= y) && (y <
             poly[[i, 2]])))
       && (x < (poly[[j, 1]] -
             poly[[i, 1]])*(y - poly[[i, 2]])/(poly[[j, 2]] -
              poly[[i, 2]]) + poly[[i, 1]])), c = \[Not] c
     ];
   ];
  Return [c];
  ]

Cheers -- Sjoerd

On Feb 9, 12:31 pm, Mitch Murphy <mi... at lemma.ca> wrote:
> is there a way to test whether a point is inside a polygon? ie.
>
>         PointInsidePolygonQ[point_,polygon_] -> True or False
>
> i'm trying to do something like ...
>
>         ListContourPlot[table,RegionFunction->CountryData["Canada=
","Polygon"]]
>
> to create what would be called a "clipping mask" in photoshop.
>
> cheers,
> Mitch



  • Prev by Date: Re: testing if a point is inside a polygon
  • Next by Date: Re: Map[] and multiple args function
  • Previous by thread: Re: testing if a point is inside a polygon
  • Next by thread: Re: testing if a point is inside a polygon