canvas中的isPointInPath()方法

isPointInPath()方法

定义与用法: isPointInPath()方法返回true,如果给定的点的坐标位于路径之内的话(包括路径的边),否则返回 false。
语法: context.isPointInPath(x,y);//其中x,y分别是给定点的横、纵坐标

isPointInStroke()

是 Canvas 2D API 用于检测某点是否在路径的描边线上的方法。返回值是一个布尔值,当这个点在路径的描边线上,则返回true,否则返回false。

1.首先强调isPointInPath(x,y)方法是针对路径的,比如canvas中的rect、arc方法都可以用,但是fillRect不可以用,因为它不是路径;而且仅对当前的路径有效,而且如果当前路径有多个子路径(currentPath可以有多个subPath:比如进行了rect()之后,再进行arc(),最后关闭路径,进行stroke,那么rect()和arc()所绘制的就是当前路径的两个子路径),只对第一个子路径有效。in the current path:如下图所示,图中路径是由rect方法形成的,in the path 包括path边

canvas中的isPointInPath()方法_第1张图片
1.jpg

2.鉴于isPointInPath()不支持canvas自带的两个方法fillRect(),strokeRect();

可以用如下方法替代:

  ctx.rect(x,y,w,h);
  ctx.stroke(); //替代strokeRect();

  ctx.rect(x,y,w,h);
  ctx.fill(); //替代fillRect();

你可能感兴趣的:(canvas中的isPointInPath()方法)