Я быстро взглянул на него.Не удалось отследить поток приложения, но то, что кажется странным, это строка кода
c = !c;
.Почему бы вам просто не установить значение true или напрямую вернуть true, если вы выполняете условия в первый раз?Я предполагаю, что хром переходит в «true», а затем инвертирует его в следующий раз, когда он находится в пределах x / y.
Я не знаком с Рафаэлем или SVG, но кажется, что ваши полигоны являются квадратамиТаким образом, вы можете сделать простой в тесте
//original found here http://www.gamedev.net/topic/483716-point-inside-of-rectangle/
function inside( x, y, l, r, b, t ){ //x,y are the point, l,r,b,t are the extents of the rectangle
return x > l && x < r && y > b && y < t;
}