判断点是否在闭合曲线内

以前在做医疗靶区勾画时用到过这个算法,现在总结一下,介绍引射线法。

1、原理

从目标点引一条射线,判断这条线与曲线的交点个数为奇数还是偶数,为奇数表示点在曲线内,偶数表示点在曲线外。

js代码如下:

function pointInPolygon(point, lines) {   var inside = false;for (var i=0; i<lines.length-1; i++) {var slope = (lines[i+1].y - lines[i].y)/(lines[i+1].x - lines[i].x);var xBetween = (lines[i].x < point.x && point.x <lines[i+1].x) || (lines[i+1].x < point.x && point.x <lines[i].x);var yAbove = point.y < (slope * (point.x - lines[i].x) + lines[i].y);if (xBetween && yAbove) {inside = !inside;}}return inside;
}

上面是向Y轴正方向引射线,判断射线与曲线的交点个数。


下面是github上的插件https://github.com/substack/point-in-polygon

ps: 如有意见或建议,欢迎指出

判断一个点是否在闭合曲线内相关推荐

  1. 判断一个点是否在某个区域内(多边形)

    判断一个点是否在某个区域内(多边形) 背景: 比如滴滴会根据乘客所在的不同区域,给出不同的价格.市区堵一点,那么价格也高点.获取服务范围只规定在某个范围内 原理: 求解从该点向右发出的水平线射线与多边 ...

  2. 判断一个点是否在指定三角形内(1)

    问题:判断点P是否在三角形ABC内 判断一个点是否在在三角形内,最常用的两种方法:面积法.向量同向法.算法虽然很简单,但要做到高效却不容易,要考虑到二维.三维的区别,还要考虑到坐标是用浮点数还是用整数 ...

  3. java 判断范围_java判断一个点是否在一个围栏范围内

    应项目需求,需要判断一个点所属哪个区域范围内管辖,突然想起来三年前做了个外卖的项目里面有个功能,判断用户是否在商家自己划的配送范围内,又找回来以前的代码来看了下,所以在此处记录一下 @Data @No ...

  4. 地图处理方法-判断一个点是否在某个区域内

    判断一个点是否在某个区域内(多边形) 背景: 比如滴滴会根据乘客所在的不同区域,给出不同的价格.市区堵一点,那么价格也高点.获取服务范围只规定在某个范围内 原理: 求解从该点向右发出的水平线射线与多边 ...

  5. JAVA判断一个地理坐标是否在一个多边形区域内和是否在一个圆形区域内(经纬度)

    怎么样判断一个坐标点在一个多边形区域内?包括规则多边形,不规则多边形,还有圆... 1 判断一个坐标是否在圆形区域内? 多边形和圆分开写,首先简单的就是判断是否在圆里面,如何判断一个坐标是否在圆形区域 ...

  6. Unity判断一个物体是否在相机范围内

    Unity判断一个物体是否在相机范围内 思路 代码 注意点 思路 先说下思路,先把物体从世界坐标转到该相机的视口坐标viewPos, 如果满足这两个条件: 0<viewPos.x < 1 ...

  7. Qt 判断一个点是否落在三角形内(算法)

    利用重心法判断一个点是否落在三角形面积内,三角形的三个点在同一个平面上,如果选中其中一个点,其他两个点不过是相对该点的位移而已,比如选择点A作为起点,那么点B相当于在AB方向移动一段距离得到,而点C相 ...

  8. 如何判断一个点在矩形或多边形内

    先说一下,两个方法均是js实现,均是转载自其他大佬的文章,地址贴在下面 我最近接了个单子,里面有很多大棚,要求鼠标进入大棚范围高亮,我试过网上很多方法.大多不准确,或者说不适合有很多矩形.多边形的这种 ...

  9. 关于判断一个点是否落在矩形内

    判断一个点是否在矩形内会经常用到,比如判断点是否在障碍物里,判断游戏中的玩家是否在某一区域.网上的解释都是抄来抄去的,有的明显错误也没发现,要么就是扔了一段代码,什么解释也没有,让人云里雾里.因此这里 ...

最新文章

  1. 自己开发的Grid组件 针对IOS的
  2. 黄聪:NaviCat通过Http方式连接服务器的MySQL数据库(转)
  3. Python 常用文件
  4. linux 内存交换参数,Ubuntu Linux:处理交换内存和内存使用情况
  5. android图片跳转动画效果,Android实现Activity界面切换添加动画特效的方法
  6. volatile关键字及JMM模型
  7. 分布式框架seata启动命令
  8. ProE常用曲线方程:Python Matplotlib 版本代码(蝴蝶曲线)
  9. java 皮鞋_java反射
  10. HTTP1.1之后的长连接和WebSocket的长连接之间的区别
  11. IIS——asp上传文件大小限制
  12. 备战2022软考网络管理员(1)介绍与开篇
  13. Boundary loss for highly unbalanced segmentation
  14. 兼容iOS 10 _升级xcode8_适配(一)
  15. Bing翻译实例(microsoft translator API)
  16. 叮咚买菜VS每日优鲜:同亏不同命
  17. 怎么看地图?还是要一起看看地图是怎么画出来的!
  18. 牛听听 总是获取音频流出错_如果被骚扰是女人的错 | 德国2分钟讽刺短片(双语视频)...
  19. PKU ACM 1006 生理周期
  20. UE4/5Control Rig绑定(向前解析)

热门文章

  1. 塔望3W消费战略全案丨阳澄湖牌大闸蟹:承诺就是价值,打响官方第一枪
  2. 数据架构:数据中心 主备、双活
  3. 推荐阅读蔡颖先生新作-APS走向实践
  4. 计算机毕业设计JAVA家庭饮用水监测系统mybatis+源码+调试部署+系统+数据库+lw
  5. SPSS实现系统聚类
  6. 《苏菲的世界》读书笔记
  7. redis实现setnx,setex连用实现分布式锁
  8. beautifulsoup菜鸟教程
  9. [源码和文档分享]基于SDL类库实现的射死大鸡怪3D游戏
  10. scrapy 爬取糗事百科段子篇章二(下载用户头像)