js 判断点是否在多边形内
来源:互联网 发布:意大利火车时刻表软件 编辑:程序博客网 时间:2024/06/08 18:30
射线法:
//计算向量叉乘
var crossMul=function(v1,v2){return v1.x*v2.y-v1.y*v2.x;
}
//判断两条线段是否相交
var checkCross=function(p1,p2,p3,p4){
var v1={x:p1.x-p3.x,y:p1.y-p3.y},
v2={x:p2.x-p3.x,y:p2.y-p3.y},
v3={x:p4.x-p3.x,y:p4.y-p3.y},
v=crossMul(v1,v3)*crossMul(v2,v3)
v1={x:p3.x-p1.x,y:p3.y-p1.y}
v2={x:p4.x-p1.x,y:p4.y-p1.y}
v3={x:p2.x-p1.x,y:p2.y-p1.y}
return (v<=0&&crossMul(v1,v3)*crossMul(v2,v3)<=0)?true:false
}
//判断点是否在多边形内
var checkPP=function(point,polygon){
var p1,p2,p3,p4
p1=point
p2={x:-100,y:point.y}
var count=0
//对每条边都和射线作对比
for(var i=0;i<polygon.length-1;i++){
p3=polygon[i]
p4=polygon[i+1]
if(checkCross(p1,p2,p3,p4)==true){
count++
}
}
p3=polygon[polygon.length-1]
p4=polygon[0]
if(checkCross(p1,p2,p3,p4)==true){
count++
}
// console.log(count)
return (count%2==0)?false:true
}
0 0
- js 判断点是否在多边形内
- 点在多边形内算法,JS判断一个点是否在一个复杂多边形的内部
- 判断点是否在多边形内
- 判断点是否在多边形内
- 判断一个点是否在多边形内
- 判断点是否在多边形内
- 判断点是否在多边形内
- 判断点是否在多边形内
- 判断某个点是否在多边形内
- zoj1081判断点是否在多边形内
- 判断点是否在多边形内
- 判断点是否在多边形内
- 判断点是否在多边形内
- 判断点是否在多边形内
- 判断点是否在多边形内
- 判断点是否在多边形内
- 判断点是否在多边形内
- 判断点是否在多边形内
- Android MediaPlayer状态机 接口 方法解析
- selector
- FBO离屏渲染技术
- c++ 链表类创建 demo
- 获取radio点击事件
- js 判断点是否在多边形内
- Lua_第 20 章 IO库
- framework 开发 之 mmssms.db 中表结构的理解
- GoAhead 2.1.8嵌入式webserver源码分析学习(二)---源码文件结构分析
- C# 枚举类型
- emulator: warning: opening audio input failed
- linux 设置group_concat_max_len
- VFL-自动布局
- PCL系列——将点云数据写入PCD格式文件