CanvasRenderingContext2D.isPointInPath() - чи знаходиться точка у контурі.
ctx.isPointInPath( x, y );
ctx - об'єкт CanvasRenderingContext2D.
x - координати осі X.
y - координати ось Y.
isPointInPath() метод об'єкту CanvasRenderingContext2D який перевіряє чи знаходиться вказана точка всередині поточного контора полотна canvas. Повертає логічне значення: true або false.
var canvas= document.getElementById("canvas");
crt = canvas.getContext("2d");
crt.rect(20,20,100,120);
var b = crt.isPointInPath(26, 26);
alert(b); // true
alert( crt.isPointInPath(5, 2) ); //false
var canvas= document.getElementById("canvas");
crt = canvas.getContext("2d");
crt.beginPath();
crt.moveTo(20,20);
crt.lineTo(40, 20);
crt.lineTo(40, 40);
crt.lineTo(20, 40);
crt.closePath();
var b = crt.isPointInPath(26, 26);
alert(b); // true
Приклад різниці між isPointInPath і isPointInStroke:
var canvas= document.getElementById("myCanvas");
crt = canvas.getContext("2d");
canvas.onclick=function(e){
document.getElementById("test").innerHTML="<b>isPointInPath("+e.offsetX+", "+e.offsetY+")</b> = "+crt.isPointInPath(e.offsetX, e.offsetY) + " <b>isPointInStroke("+e.offsetX+", "+e.offsetY+")</b> = "+crt.isPointInStroke(e.offsetX, e.offsetY);
}
crt.strokeStyle="red";
crt.rect(25, 25, canvas.width-50, canvas.height-50);
crt.stroke();