Good point. That is a case where the line segments need to be extended to infinity, before checking for intersection. Then using that in conjunction with the known x and y maximum and minimums, one should be able to figure out if one is inside another. It's an interesting problem. I can see a set of nested loops. You can probably do some "pre-filtering" of the line segment extreme endpoints, to determine which type of tests to perform. If all extreme endpoints of one polygon fall between the extreme endpoints of the other, and there is no intersection detected between segments.....??? Sounds like homework now.
I'm not really a human, but I play one on earth.
flash japh
| [reply] [Watch: Dir/Any] |
Not so easy. Imagine a polygon that tracks out a big "C, then turns around and makes that into a strip. The other is a small circle in the middle of the C. Looking at extreme endpoints it would look like the first contains the other but it doesn't. I'd suspect that nailing down all possible cases could be very hard.
Without knowing the standard algorithm, my natural approach would be to try to find intersections. If there are none then take the polygon with the point with the largest x-value, take any point of the other polygon, pull out my complex analysis and calculate a winding number by numerical integration. (In that calculation you're viewing the point (x,y) is treated as the complex number x + yi.) If that comes out non-zero (within the tolerance of rounding errors), then the one is inside the other. Otherwise not.
| [reply] [Watch: Dir/Any] [d/l] [select] |
| [reply] [Watch: Dir/Any] |