当前位置: 代码迷 >> Web前端 >> isPointInPath步骤
  详细解决方案

isPointInPath步骤

热度:82   发布时间:2012-10-26 10:30:58.0
isPointInPath方法
canvas中如果用路径画了一个多边形,或者圆,想在点击多边形或者圆的时候删掉它,如何实现呢?

可以用isPointInPath方法,这个方法可以判断坐标是否在路径内

以下引用一篇文章:

   
了解canvas这个标签后,会发现在一个canvas类似一个img图片,在canvas中绘制的图形都是一个整体,所有的事件也都是发生在这一个标签上,没有办法直接判断事件是发生在canvas中的某个图形上。但是通过canvas中的路径的概念可以解决这个问题。

关键:通过路径来绘制图形,用每一个图形是一个路径,事件绑定在canvas标签上,获得事件的发生的x,y坐标。再通过 isPointInPath(),来判断点(x,y)是否在路径内,需要注意的是isPointInPath()只对当前路径(currentPath)有效,并且经测试发现,只对当前路径的第一个子路径有效(subPath,一个currentPath可以有多个subPath)。关于路径的详细解释可以看看canvas的api文档。
具体的判断就是,当事件触发时,对canvas中的内容进行重绘,每重回一个路径中的图形,用 isPointInPath()判断一次,如果在路径内,执行相应的操作。
   



详细示例请猛击此处:
http://bbs.blueidea.com/archiver/tid-2979405.html










1 楼 cherful 2012-05-10  
我看不懂也
  相关解决方案