Contains method doesn't seem to work with a point inside my polygon
I am trying to add a functionnality which would let me see if a point is inside a polygon.
Here's the code snippet to see if the point is inside my polygon
int x = 265;
int y = 300;
List<Point> points = new ArrayList<Point>();
points.add(new Point(233,155));
points.add(new Point(347,269));
points.add(new Point(136,251));
points.add(new Point(250,366));
Polygon polygon = new Polygon();//java.awt.Polygon
for(Point point : points) {
polygon.addPoint(point.x, point.y);
}
return polygon.contains(x,y);
The code seems to work if my point is closer to the upper-left side of the polygon, however when the point is on the bottom-right side, the method contains will return false.
Graph of my polygon and the point in question : https://www.desmos.com/calculator/tnglrdpivn
Any idea why this happens ?
java 2d awt polygon
add a comment |
I am trying to add a functionnality which would let me see if a point is inside a polygon.
Here's the code snippet to see if the point is inside my polygon
int x = 265;
int y = 300;
List<Point> points = new ArrayList<Point>();
points.add(new Point(233,155));
points.add(new Point(347,269));
points.add(new Point(136,251));
points.add(new Point(250,366));
Polygon polygon = new Polygon();//java.awt.Polygon
for(Point point : points) {
polygon.addPoint(point.x, point.y);
}
return polygon.contains(x,y);
The code seems to work if my point is closer to the upper-left side of the polygon, however when the point is on the bottom-right side, the method contains will return false.
Graph of my polygon and the point in question : https://www.desmos.com/calculator/tnglrdpivn
Any idea why this happens ?
java 2d awt polygon
In order for us to help, what are thepoints
and what arex
&y
that reproduce the issue you're having? Also make sure you read thru the definition of insideness for this implementation.
– Krease
Nov 15 '18 at 23:25
For better help sooner, post a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 15 '18 at 23:27
1
@Krease as you have requested I've added more info to make my question clearer, thanks for your input.
– J. Lev
Nov 15 '18 at 23:40
Much clearer now - see my answer.
– Krease
Nov 16 '18 at 0:05
add a comment |
I am trying to add a functionnality which would let me see if a point is inside a polygon.
Here's the code snippet to see if the point is inside my polygon
int x = 265;
int y = 300;
List<Point> points = new ArrayList<Point>();
points.add(new Point(233,155));
points.add(new Point(347,269));
points.add(new Point(136,251));
points.add(new Point(250,366));
Polygon polygon = new Polygon();//java.awt.Polygon
for(Point point : points) {
polygon.addPoint(point.x, point.y);
}
return polygon.contains(x,y);
The code seems to work if my point is closer to the upper-left side of the polygon, however when the point is on the bottom-right side, the method contains will return false.
Graph of my polygon and the point in question : https://www.desmos.com/calculator/tnglrdpivn
Any idea why this happens ?
java 2d awt polygon
I am trying to add a functionnality which would let me see if a point is inside a polygon.
Here's the code snippet to see if the point is inside my polygon
int x = 265;
int y = 300;
List<Point> points = new ArrayList<Point>();
points.add(new Point(233,155));
points.add(new Point(347,269));
points.add(new Point(136,251));
points.add(new Point(250,366));
Polygon polygon = new Polygon();//java.awt.Polygon
for(Point point : points) {
polygon.addPoint(point.x, point.y);
}
return polygon.contains(x,y);
The code seems to work if my point is closer to the upper-left side of the polygon, however when the point is on the bottom-right side, the method contains will return false.
Graph of my polygon and the point in question : https://www.desmos.com/calculator/tnglrdpivn
Any idea why this happens ?
java 2d awt polygon
java 2d awt polygon
edited Nov 16 '18 at 0:02
J. Lev
asked Nov 15 '18 at 23:17
J. LevJ. Lev
89112
89112
In order for us to help, what are thepoints
and what arex
&y
that reproduce the issue you're having? Also make sure you read thru the definition of insideness for this implementation.
– Krease
Nov 15 '18 at 23:25
For better help sooner, post a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 15 '18 at 23:27
1
@Krease as you have requested I've added more info to make my question clearer, thanks for your input.
– J. Lev
Nov 15 '18 at 23:40
Much clearer now - see my answer.
– Krease
Nov 16 '18 at 0:05
add a comment |
In order for us to help, what are thepoints
and what arex
&y
that reproduce the issue you're having? Also make sure you read thru the definition of insideness for this implementation.
– Krease
Nov 15 '18 at 23:25
For better help sooner, post a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 15 '18 at 23:27
1
@Krease as you have requested I've added more info to make my question clearer, thanks for your input.
– J. Lev
Nov 15 '18 at 23:40
Much clearer now - see my answer.
– Krease
Nov 16 '18 at 0:05
In order for us to help, what are the
points
and what are x
& y
that reproduce the issue you're having? Also make sure you read thru the definition of insideness for this implementation.– Krease
Nov 15 '18 at 23:25
In order for us to help, what are the
points
and what are x
& y
that reproduce the issue you're having? Also make sure you read thru the definition of insideness for this implementation.– Krease
Nov 15 '18 at 23:25
For better help sooner, post a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 15 '18 at 23:27
For better help sooner, post a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 15 '18 at 23:27
1
1
@Krease as you have requested I've added more info to make my question clearer, thanks for your input.
– J. Lev
Nov 15 '18 at 23:40
@Krease as you have requested I've added more info to make my question clearer, thanks for your input.
– J. Lev
Nov 15 '18 at 23:40
Much clearer now - see my answer.
– Krease
Nov 16 '18 at 0:05
Much clearer now - see my answer.
– Krease
Nov 16 '18 at 0:05
add a comment |
1 Answer
1
active
oldest
votes
The key here is in the ordering of your points. Though plotted all at once on a graph, they look like they form a nice looking polygon, if you play connect-the-dots with them in the order you add them to the polygon, they form a very weird shape, and the point is really not contained in the polygon.
If you reverse the order of your last two points, the connect-the-dots polygon is properly formed, and then the point is contained in the polygon.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53329216%2fcontains-method-doesnt-seem-to-work-with-a-point-inside-my-polygon%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The key here is in the ordering of your points. Though plotted all at once on a graph, they look like they form a nice looking polygon, if you play connect-the-dots with them in the order you add them to the polygon, they form a very weird shape, and the point is really not contained in the polygon.
If you reverse the order of your last two points, the connect-the-dots polygon is properly formed, and then the point is contained in the polygon.
add a comment |
The key here is in the ordering of your points. Though plotted all at once on a graph, they look like they form a nice looking polygon, if you play connect-the-dots with them in the order you add them to the polygon, they form a very weird shape, and the point is really not contained in the polygon.
If you reverse the order of your last two points, the connect-the-dots polygon is properly formed, and then the point is contained in the polygon.
add a comment |
The key here is in the ordering of your points. Though plotted all at once on a graph, they look like they form a nice looking polygon, if you play connect-the-dots with them in the order you add them to the polygon, they form a very weird shape, and the point is really not contained in the polygon.
If you reverse the order of your last two points, the connect-the-dots polygon is properly formed, and then the point is contained in the polygon.
The key here is in the ordering of your points. Though plotted all at once on a graph, they look like they form a nice looking polygon, if you play connect-the-dots with them in the order you add them to the polygon, they form a very weird shape, and the point is really not contained in the polygon.
If you reverse the order of your last two points, the connect-the-dots polygon is properly formed, and then the point is contained in the polygon.
answered Nov 16 '18 at 0:04
KreaseKrease
11.7k74162
11.7k74162
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53329216%2fcontains-method-doesnt-seem-to-work-with-a-point-inside-my-polygon%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
In order for us to help, what are the
points
and what arex
&y
that reproduce the issue you're having? Also make sure you read thru the definition of insideness for this implementation.– Krease
Nov 15 '18 at 23:25
For better help sooner, post a Minimal, Complete, and Verifiable example or Short, Self Contained, Correct Example.
– Andrew Thompson
Nov 15 '18 at 23:27
1
@Krease as you have requested I've added more info to make my question clearer, thanks for your input.
– J. Lev
Nov 15 '18 at 23:40
Much clearer now - see my answer.
– Krease
Nov 16 '18 at 0:05