js - canvas事件检测

2018-06-04  本文已影响28人  李司徒

【背景】canvas事件检测是一个很常见的问题,目前常用的有几种:

  1. 用isPointInStroke 或isPointInPath检测
  2. 用点击位置与各要素线的距离来进行运算,对面等要素来说比较困难
  3. open layers 2.*版本中涉及到一个很精巧的办法,要素ID转化为color,通过点击事件取color,反求要素ID

针对第3种情况,进行一些说明。代码来自lib/render/canvas

关键属性和方法:

总结:核心思路是利用唯一ID及颜色的转换,来快速检索要素,思路很巧,

问题

如果要素相交,相交处检测是否有颜色偏差,还需测试确认

其他思路

上一篇下一篇

猜你喜欢

热点阅读