源於此:How to tackle diagonally stacked, rounded image background element hovers?點在多邊形錯誤檢測
我做圖像映射區域並進行改造我的情況,但是,現在有一個在多邊形點問題命中檢測。
似乎只有右下象限總是正確的,但是,只有在環外觀察時 - 檢測內部可能仍然不正確。環外的其他象限偶爾會報告一個應該是錯誤的正面命中。
小提琴:http://jsfiddle.net/psycketom/9J4dx/1/
紅色線由這是一個從數據映射生成的多邊形繪製。
藍線表示我們當前正在檢查的多邊形。
多邊形功能點來自:https://github.com/substack/point-in-polygon
var pointInPolygon = function(point, vs)
{
// ray-casting algorithm based on
// http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
var x = point[0], y = point[1];
var inside = false;
for (var i = 0, j = vs.length - 1; i < vs.length; j = i++) {
var xi = vs[i][0], yi = vs[i][1];
var xj = vs[j][0], yj = vs[j][1];
var intersect = ((yi > y) != (yj > y))
&& (x < (xj - xi) * (y - yi)/(yj - yi) + xi);
if (intersect) inside = !inside;
}
return inside;
};
我似乎無法理解這裏的問題。
......有時候我真的討厭弱類型的語言。謝謝你的收穫! – jolt