模拟贝塞尔曲线(isPointInPath)

贝塞尔曲线

bezierCurveTo(cpx,cpy,cpx2,cpx2,dx,dy);创建一条表示贝塞尔曲线的路径.

该函数接受六个参数,分别代表三个点.

(cpx,cpy),(cpx2,cpx2)代表控制点,决定曲线的形状

(dx,dy)代表终点

模拟贝塞尔曲线(isPointInPath)

isPointInPath方法
isPointInPath

是 Canvas 2D API 用于检测某点是否在路径的描边线上的方法。返回值是一个布尔值,当这个点在路径的描边线上,则返回true,否则返回false。
首先强调isPointInPath(x,y)方法是针对路径的,比如canvas中的rect、arc方法都可以用,但是fillRect不可以用,因为它不是路径;而且仅对当前的路径有效,而且如果当前路径有多个子路径(currentPath可以有多个subPath:比如进行了rect()之后,再进行arc(),最后关闭路径,进行stroke,那么rect()和arc()所绘制的就是当前路径的两个子路径),只对第一个子路径有效
所以要在每次判断之前要创建要移动的元素


原生方法

利用点击该点的位置到圆心的距离与半径相比,如果大于半径,则表明点击的位置不在小球内部,反之,则在小球内部


你可能感兴趣的:(模拟贝塞尔曲线(isPointInPath))