Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中实现形状内像素算法_Javascript_Coordinates_Pixel_Shape - Fatal编程技术网

如何在javascript中实现形状内像素算法

如何在javascript中实现形状内像素算法,javascript,coordinates,pixel,shape,Javascript,Coordinates,Pixel,Shape,我现在正在编写一个脚本,用于检测像素是否在指定的像素阵列(形状边界)内,如图所示 var shape=[ {x:3,y:1}, {x:4,y:1}, {x:5,y:1}, {x:6,y:1}, {x:7,y:1}, {x:7,y:2}, {x:6,y:3}, {x:5,y:4}, {x:6,y:5}, {x:7

我现在正在编写一个脚本,用于检测像素是否在指定的像素阵列(形状边界)内,如图所示

    var shape=[
         {x:3,y:1},
         {x:4,y:1},
         {x:5,y:1},
         {x:6,y:1},
         {x:7,y:1},
         {x:7,y:2},
         {x:6,y:3},
         {x:5,y:4},
         {x:6,y:5},
         {x:7,y:6},
         {x:8,y:6},
         {x:8,y:5},
         {x:8,y:4},
         {x:8,y:3},
         {x:9,y:2},
         {x:9,y:1}
       ];

    var pixel={x:3,y:3}; //dynamic coordinate value from mouse event
   for(var i in shape){
         //check pixel whether within shape or outside
    }
我认为javaScript中可能有更简单的实现,如果有,请告诉我。
非常感谢


此函数似乎实现了以下功能:

function isPointInPoly(poly, pt){
    for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
        ((poly[i].y <= pt.y && pt.y < poly[j].y) || (poly[j].y <= pt.y && pt.y < poly[i].y))
        && (pt.x < (poly[j].x - poly[i].x) * (pt.y - poly[i].y) / (poly[j].y - poly[i].y) + poly[i].x)
        && (c = !c);
    return c;
}
函数isPointInPoly(poly,pt){
对于(var c=false,i=-1,l=poly.length,j=l-1;++i