производного от этого: How to tackle diagonally stacked, rounded image background element hovers?Точка в многоугольнике ложно обнаружен
Я сделал карты изображения области и превратил их в моем случае, но теперь есть проблема с точкой полигона ударила обнаружение.
Похоже, что только правый правый квадрант всегда правильный, но только если смотреть вне кольца - внутри обнаружения может быть все еще неверным. Другие квадранты, вне кольца, иногда сообщают о положительном ударе, где он должен быть ложным.
Fiddle: 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