Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 测试点是否与画布上的字符重叠_Javascript_Html_Canvas - Fatal编程技术网

Javascript 测试点是否与画布上的字符重叠

Javascript 测试点是否与画布上的字符重叠,javascript,html,canvas,Javascript,Html,Canvas,我有一个画布,需要在其中用javascript绘制文本,然后测试给定的点是否与文本重叠 我想知道是否可以使用canvas(context.fillText(…)和某种测试(if(overlap(textobject,{x:12,y:10{}))来实现这一点,或者我是否需要在SVG中绘制字符,以便获得坐标并从中对其排序 我肯定有一些库已经开始为这种事情弹出,但我今天的谷歌技能遇到了问题。我可以想出一些方法来解决这个问题,除非你需要将文本绘制到画布上进行某种像素操作 一种方法是在canvas元素(p

我有一个画布,需要在其中用javascript绘制文本,然后测试给定的点是否与文本重叠

我想知道是否可以使用canvas(context.fillText(…)和某种测试(if(overlap(textobject,{x:12,y:10{}))来实现这一点,或者我是否需要在SVG中绘制字符,以便获得坐标并从中对其排序


我肯定有一些库已经开始为这种事情弹出,但我今天的谷歌技能遇到了问题。

我可以想出一些方法来解决这个问题,除非你需要将文本绘制到画布上进行某种像素操作

一种方法是在canvas元素(position:absolute;)上浮动文本,然后使用jQuery测试悬停事件。另一种方法是在canvas元素中的文本周围创建一个框,然后检测鼠标何时在这些范围内

如果您正在寻找最精确的测试,那么svg将是一个不错的选择


你也可以尝试一个库,看看他们是否已经创建了这个功能。

更新:作为一个开放的网络迷和OOMG HTML5,我完全忽略了Flash。事实证明,它是我尝试做的最好的媒介。由于actionscript和JS非常相似,逻辑是复制粘贴工作



感谢heaps提供的答案,这是一个巨大的问题,因此我在Illustrator中绘制了我的角色,打开网格,创建了一个数组,其中网格穿过角色的位置和未穿过的位置,然后将其转换为JS数组。一旦完成,我将发布一个链接。

如果您必须只使用画布,我建议将您的文本填充到一块空白画布(不必在页面上),然后使用
getImageData()
确定给定像素是否不透明。