// 保证点的数组是以顺时针保存
function pointInArea(pt, pts) {
pts = pts.slice();
pts.push(pts[0]); // 连接最后一边
for (var i=1; ivar p0 = pts[i-1];
var p1 = pts[i];
var dx = p1.x-p0.x;
var dy = p1.y-p0.y;
if (dx == 0) {
if (dy > 0 && pt.x > p0.x) {
return false;
}
if (dy <0 && pt.x < p0.x) {
return false;
}
}
var y = dy/dx*(pt.x-p0.x)+p0.y;
if (dx > 0 && pt.y < y) {
return false;
}
if (dx <0 && pt.y > y) {
return false;
}
}
return true;
}
你好 给你个链接 里边基本符合你的需求 不过你要好好看看人家是如何做的 Good luck !http://jsfiddle.net/66YsR/
20RMB帮你写