点在多边形内的算法(C++和JavaScript版 )
2015-12-15 15:34
141 查看
C++,其中 npol是多边形顶点的数量,xp,yp是多边形顶点数组,x,y是某个点
JavaScript,其中poly是多边形数组,pt是某个点
参考:
http://www.cnblogs.com/lichkingct/archive/2009/10/18/1585689.html http://bbs.csdn.net/topics/240060193
int pnpoly(int npol, float *xp, float *yp, float x, float y) { int i, j, c = 0; for (i = 0, j = npol-1; i < npol; j = i++) { if ((((yp[i] <= y) && (y < yp[j])) || ((yp[j] <= y) && (y < yp[i]))) && (x < (xp[j] - xp[i]) * (y - yp[i]) / (yp[j] - yp[i]) + xp[i])) c = !c; } return c; }
JavaScript,其中poly是多边形数组,pt是某个点
function _isInsidePolygon(pt, poly) { for (var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) ((poly[i].y <= pt.y && pt.y < poly[j].y) || (poly[j].y <= pt.y && pt.y < poly[i].y)) && (pt.x < (poly[j].x - poly[i].x) * (pt.y - poly[i].y) / (poly[j].y - poly[i].y) + poly[i].x) && (c = !c); return c; }
参考:
http://www.cnblogs.com/lichkingct/archive/2009/10/18/1585689.html http://bbs.csdn.net/topics/240060193
相关文章推荐
- IOS5中的Safari不兼容Javascript中的Date问题,做下笔录吧!奶奶的,折腾我半天!
- phantomjs和pyspider安装
- JavaScript中Textarea滚动条不能拖动的解决方法
- 老李分享: JSON
- 学习ExtJS(二) Button常用方法
- JS获取昨天和前天
- [JS] Ajax请求会话过期处理
- Adroid开发之解析Json数据格式
- Ext JS权威指南
- js----验证码
- Google Map JavaScript API V3 实例大全
- JavaScript笔记
- JavaScript 静态方法和实例方法
- js checkbox获取选中的值
- firedac的数据序列和还原单元(Data.FireDACJSONReflect.pas)之字符串序列和还原
- 【层级结构】Ext.js5 视图模型的内部
- 前后台彻底分离的核心文件bridge.js.
- js中数组的使用
- firedac的数据序列和还原单元(Data.FireDACJSONReflect.pas)之拷贝FIREDAC数据集
- 转 JavaScript 获取鼠标点击位置坐标