博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
点在多边形内的判断
阅读量:6173 次
发布时间:2019-06-21

本文共 970 字,大约阅读时间需要 3 分钟。

 

在看zrender源码时,看到点在多边形内的判断代码,特意粘出来,参考下:

/**         * 多边形包含判断         * 采用 non-zero winding rule         */        function isInsidePolygon(points, x, y) {            var N = points.length;            var w = 0;            for (var i = 0, j = N - 1; i < N; i++) {                var x0 = points[j][0];                var y0 = points[j][1];                var x1 = points[i][0];                var y1 = points[i][1];                w += windingLine(x0, y0, x1, y1, x, y);                j = i;            }            return w !== 0;        }        function windingLine(x0, y0, x1, y1, x, y) {            if ((y > y0 && y > y1) || (y < y0 && y < y1)) {                return 0;            }            if (y1 == y0) {                return 0;            }            var dir = y1 < y0 ? 1 : -1;            var t = (y - y0) / (y1 - y0);            var x_ = t * (x1 - x0) + x0;            return x_ > x ? dir : 0;        }

 

转载于:https://www.cnblogs.com/lydialee/p/5064864.html

你可能感兴趣的文章
Java项目读取配置文件时,找不到指定的文件???
查看>>
lua/luajit and tcc
查看>>
前端安全即JS代码安全,前端源码安全探讨!
查看>>
如何快速实现异地不同网络打印机共享
查看>>
openinstall免费服务对App推广有哪些作用?
查看>>
基于Docker的微服务CI CD流水线
查看>>
学好SEO需要掌握哪些知识要点?
查看>>
JetBrains GoLand macv2019.1.2中文版如何换成无牵引模式?
查看>>
电气火灾监控系统工作原理
查看>>
中使馆驳斥《金融时报》“中国网络威胁论”
查看>>
【挨踢人物传】茶乡浪子:“传奇”职场路,一生感谢情(第12期)
查看>>
我的友情链接
查看>>
c#关于数据库连接操作的案例
查看>>
聊聊最近接触的媒体查询!
查看>>
HAproxy指南之haproxy重定向应用(案例篇)
查看>>
学习 HTTP协议挺不错的一个类
查看>>
深入字节码 -- ASM 关键接口 MethodVisitor
查看>>
linux 文件权限
查看>>
Linux常用命令集合
查看>>
Oracle DML
查看>>