Last active
October 22, 2015 15:05
-
-
Save dan-dr/6fb30a37628fbb381188 to your computer and use it in GitHub Desktop.
check if point is within polygon
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Boundary { | |
private final Point[] points; // Points making up the boundary | |
... | |
/** | |
* Return true if the given point is contained inside the boundary. | |
* See: http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html | |
* @param test The point to check | |
* @return true if the point is inside the boundary, false otherwise | |
* | |
*/ | |
public boolean contains(Point test) { | |
int i; | |
int j; | |
boolean result = false; | |
for (i = 0, j = points.length - 1; i < points.length; j = i++) { | |
if ((points[i].y > test.y) != (points[j].y > test.y) && | |
(test.x < (points[j].x - points[i].x) * (test.y - points[i].y) / (points[j].y-points[i].y) + points[i].x)) { | |
result = !result; | |
} | |
} | |
return result; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment