判断一个点在多边形里头?

已知边界的点。 {x:2,y:0}{x:2,y:2}{x:0,y:2}{x:02,y:5}{x:5,y:5}{x:5,y:0}
随便传入一个点 (0,0)到 (5,5)之间 例如(3,3) 判断是否在这个多边形里。

扩展:多边形可能是凹边
ps:45度角tieldMap地图

1赞

2赞

可以试试检测一下多边形,如果是凹多边形就拆分成多个凸多边形来用api(pointInPolygon)进行检测

凹多边形拆分可以使用
engine\cocos2d\core\physics\CCPolygonSeparator.js

右射线的方法应该可以,如果射线和多边形的焦点为奇数个的时候证明在里面,如果偶数个就是在外面

我现在在项目里用的是jsts这个库,功能比较全,对于落在边界也可以求解。
https://github.com/bjornharrtell/jsts

1赞