• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 869
  • Last Modified:

Image map Polygon Algorithm

I'm trying to write the function which tells me whether
an (x,y) point is in a certain polygon?

i already written ones for rectangle & circle but stuck on
the Poligon - the function looks like that:
pointInPolygon(File i_mapFile , double x, double y)
{}
i dont need you to write a code just a way or an algorithm
to find that (x,y) point is in or not the polygon.

a polygon is at least 3 points of lines that are connected togther (0,0)(100,50)(200,30) the first point should be the last and if its not so im adding another connecting point
but thats for another session!

Thanks,
0
cs4ez
Asked:
cs4ez
  • 4
  • 3
  • 2
  • +1
1 Solution
 
InteqamCommented:
a simple way is to floodfill the region that contains the point you want with a specific color, and then check the color of a point your are sure it is inside the polygon , if it has the same color you floodfilled , then the point is in the polygon , and vice versa

0
 
ozoCommented:
or count the number of times a segment of the polygon crosses a ray from the point to infinity
0
 
InteqamCommented:
yes ozo , i thought of that , but i found it so difficult , especialy if the polygon is drawn by giving the coordinations of the heads , and also the problems of a point that lies on the line , and also and most important the problems of rounding , which will have a great effect considering that we are using pixels

0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
cs4ezAuthor Commented:
coloring the polygon is a bigger problem!
0
 
InteqamCommented:
ok , try ozo solution , it is difficult somehow , but it may help you

0
 
ozoCommented:
I think the easiest way to deal with boundary ambiguities is to treat the lines as lieing between pixels, rather than on them.
Rounding problems can usually be dealt with by doing everything with integers.
A flood fill would have all the same problems, but would have to deal with them for each pixel in the region.
Still, it may be advantagous to do that once, then use the resulting color map to test points many times.
If you have any difficulty, just ask for furthur help.
0
 
cs4ezAuthor Commented:
Please Do Not Attempt to Answer this question - I've Already fount the algorithm i need
in java.awt.Polygon

All answers from now on will be rejected!!!

Thanks ozo & Inteqam for all your efforts

0
 
web_crusherCommented:
look at java.awt.Polygon
0
 
web_crusherCommented:
do not forget who told you about it - cs4ez
0
 
ozoCommented:
the algorithm used by the contains method in java.awt.Polygon class is the counting one
0
 
InteqamCommented:
i don't have the java.awt.polygon

can you pass it?

0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

  • 4
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now