我正在学习 Html5 Canvas 几个星期,但上面的问题困扰了我很长时间。
不规则的形状,可能是圆形、矩形、椭圆、多边形或由一些直线和贝塞尔曲线构成的路径...
我为某些形状找到了一些算法,比如圆形、矩形和多边形,但是,如果我在画布中使用它们,那么对于许多形状来说它会非常复杂。
我还查看了一些画布库,例如 Kinetic.js、paper.js、fabric.js 等,它们都很好地完成了这项工作,但是它们的代码太多并且混合在一起,所以我无法获得重点...
但我发现,他们都没有使用“isPointInPath”方法来完成这项工作。为什么?如果使用这个,我也可以做这个工作!
kinetic.js ,我知道他用 getImageData 来确定,但奇怪的是,它得到的图像数据没有 alpha(alpha 始终为 255),但它绘制的形状是半透明的,哦不,我的大脑已经想不通了。
所以我在这里想知道如何确定一个点在画布中的不规则形状(可能是半透明的),即使是一种思考方式也可以帮助我。
并且,“isPointInPath”方法是否存在问题?因此没有人使用它?