0
我想找出一个给定的点是否存在于图像区域。图像的宽度和高度是40.四角是(10,10),(50,10),(10,50),(50,50)。有没有办法找到一个给定的(x,y)是否存在于该区域?找到SVG图像中是否存在给定(x,y)坐标?
我想找出一个给定的点是否存在于图像区域。图像的宽度和高度是40.四角是(10,10),(50,10),(10,50),(50,50)。有没有办法找到一个给定的(x,y)是否存在于该区域?找到SVG图像中是否存在给定(x,y)坐标?
检查点是否位于矩形内部,我使用直线方程并将点与所有四条线进行比较。 这种方法的关键是点的顺序。
检查下面的代码: -
function isPointInside(fourPointsArray, pointToCheck) {
var counter = 0;
var ele = pointToCheck;
var A, B, C, D, p1, p2, indx;
for (var k = 0; k < fourPointsArray.length; k++) {
p1 = fourPointsArray[k];
indx = k + 1;
if (indx >= fourPointsArray.length)
indx = 0;
p2 = fourPointsArray[indx];
A = -(p2.y - p1.y);
B = p2.x - p1.x;
C = -(A * p1.x + B * p1.y);
D = A * ele.x + B * ele.y + C;
if (D >= 0) {
counter++;
}
}
if (counter >= fourPointsArray.length) {
return true;
}
return false;
}
var arraypoints=[{x:10,y:10},{x:50,y:10},{x:50,y:50},{x:10,y:50}];
var pointtocheck={
x:5,
y:10
}
var flag=isPointInside(arraypoints,pointtocheck);
console.log(flag);
你问了一个任意多边形的溶液或你要求我们实际键入与10和50之间的x和y的值的任何一点完全是你特定的广场? –
我正在努力防止SVG图像重叠。如果任何现有图像中存在“DroppedImage”(x,y),则不允许放置。 是的,我正在寻找第二个解决方案。 – chandravadan
为什么不直接写几行JavaScript代码来检查点是否在矩形内? – WiredPrairie