- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
一个例子 here .
var context=document.getElementById("canvas").getContext("2d");
//Red Box
context.beginPath();
context.fillStyle="Red";
context.rect(10,10,50,50);
context.fill();
//Pink circle
context.beginPath();
context.lineWidth="3";
context.fillStyle="Pink";
context.arc(250,250,50,0,Math.PI*2,false);
context.fill();
context.stroke();
context.font="1.2em Verdana";
context.fillStyle="Black";
context.fillText(context.isPointInPath(35,35),35,35);
context.fillText(context.isPointInPath(250,250),250,250);
如果您编写时没有检测到所有对象的 beginPath。如何识别 Canvas 上的对象或省略 beginPath?
最佳答案
如果你想使用那个函数,你需要在每次你想做测试时重建路径(只是不要调用 fill
或 stroke
)。
我通常做的是使用我自己的多边形点测试函数或我自己的空间数据结构,如果有很多对象并且速度很重要的话。
请注意, Canvas 只是一个位图,它不存储您用来在其上绘制的命令。这就是为什么它不能在绘制形状后进行检查,您只能测试当前路径。
一旦您调用 beginPath
,先前的路径几何图形将被丢弃,如果您调用 fill
或 stroke
,您所拥有的只是受影响的像素。
对于您的情况,检查 Canvas 像素的颜色可能有意义...
关于javascript - Html5 Canvas方法isPointInPath只判断最后一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7984420/
我需要一种机制来检测具有不同笔划宽度的直线、曲线和折线的鼠标悬停事件,我已经为矩形和椭圆建立了这种机制,所以我对 canvas API 并不陌生。我勾勒出所有绘制的对象并检测鼠标在它们上方的位置,当矩
我有一个名为 Box 的 Canvas “对象”,我需要检测鼠标何时悬停在上面。 我有一个用于此对象的 draw() 方法,我使用 isPointInPath() 方法,但仅当光标位于最后一条路径时才
我用谷歌搜索了这个,但没有找到任何在 HTML 5 中使用 Context.isPointInPath 的例子。 我知道如果该点在当前路径上,它应该返回 true,但您究竟如何使用它?您是否应该在 c
我有一组可以正确绘制的 Canvas 对象。我有三个问题: 抵消。我已经在 JS fiddle 中测试了下面的代码并且它可以工作,但是当我将它导出到我的网页时,变量会出现偏差。检测发生,但不在正确
因此,我对在当代浏览器中引入 Canvas Paths 作为标准对象感到非常兴奋,并且一直在尝试看看我可以从这个新功能中获得多少 yield 。然而,我对这些对象如何与 isPointInPath()
我想这是行不通的,因为 canvas 正在绘制矢量的位图(而位图不是路径)。 即使它确实有效,位图也可能总是有一个矩形许可。 在使用 drawImage 时,有什么方法可以利用 isPointInPa
我正在绘制一个复杂的形状,由 6 条细线和两条粗线组成。 在代码中,我打开 8 个路径来执行此操作: context.save(); context.lineWidth=2;
我是一名优秀的程序员,十分优秀!