一.按角度 (转帖:hustcyb,yhy0611。特此感谢)
1.将多边形的N个顶点与待判断点相连组成一条直线,根据直线的倾斜角将这个N个顶点按照顺时针(或逆时针)的顺序排序.
2.求相邻两个顶点与待判断点边线的两条直线的顺时针方向的夹角,如果对握有的顶点,这个夹角小于180度,则这个点位于多边形内部.
这个问题与求平面点集的凸包类似。(此方法不太适合凹多边形)
先写一个辅助类:
下面是判断算法:
测试代码:
二.用c#内置函数:(面对复杂的多边形处理上可能不太好)
三.射线法判断(本人感觉这个方法较好)