Javascript 测试点是否与画布上的字符重叠
我有一个画布,需要在其中用javascript绘制文本,然后测试给定的点是否与文本重叠 我想知道是否可以使用canvas(context.fillText(…)和某种测试(if(overlap(textobject,{x:12,y:10{}))来实现这一点,或者我是否需要在SVG中绘制字符,以便获得坐标并从中对其排序Javascript 测试点是否与画布上的字符重叠,javascript,html,canvas,Javascript,Html,Canvas,我有一个画布,需要在其中用javascript绘制文本,然后测试给定的点是否与文本重叠 我想知道是否可以使用canvas(context.fillText(…)和某种测试(if(overlap(textobject,{x:12,y:10{}))来实现这一点,或者我是否需要在SVG中绘制字符,以便获得坐标并从中对其排序 我肯定有一些库已经开始为这种事情弹出,但我今天的谷歌技能遇到了问题。我可以想出一些方法来解决这个问题,除非你需要将文本绘制到画布上进行某种像素操作 一种方法是在canvas元素(p
我肯定有一些库已经开始为这种事情弹出,但我今天的谷歌技能遇到了问题。我可以想出一些方法来解决这个问题,除非你需要将文本绘制到画布上进行某种像素操作 一种方法是在canvas元素(position:absolute;)上浮动文本,然后使用jQuery测试悬停事件。另一种方法是在canvas元素中的文本周围创建一个框,然后检测鼠标何时在这些范围内 如果您正在寻找最精确的测试,那么svg将是一个不错的选择
你也可以尝试一个库,看看他们是否已经创建了这个功能。更新:作为一个开放的网络迷和OOMG HTML5,我完全忽略了Flash。事实证明,它是我尝试做的最好的媒介。由于actionscript和JS非常相似,逻辑是复制粘贴工作
感谢heaps提供的答案,这是一个巨大的问题,因此我在Illustrator中绘制了我的角色,打开网格,创建了一个数组,其中网格穿过角色的位置和未穿过的位置,然后将其转换为JS数组。一旦完成,我将发布一个链接。如果您必须只使用画布,我建议将您的文本填充到一块空白画布(不必在页面上),然后使用
getImageData()
确定给定像素是否不透明。