I have an edge of a polygon (convex or concave). I want to find out if, going straight from start to end point of that edge, I have to turn right or left to get inside or outside of polygon. How can I check that?

有帮助吗?

解决方案

Traverse the whole polygon in that direction. If you find that you went clockwise, then the interior is to the right; if you went counter-clockwise, it's to the left.

其他提示

Another approach:

Project a perpendicular line and count how many times it crosses other edges.

odd -> interior

zero or even -> exterior

Equivalently If you happen to have a well optimized point-in-polygon routine available you can project a point some epsilon off the line and throw it into the inside test.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top