Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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 HTML5画布:检查上下文路径是否在外部路径内部,并且仅在外部路径内部_Javascript_Html_Canvas_Wkwebview - Fatal编程技术网

Javascript HTML5画布:检查上下文路径是否在外部路径内部,并且仅在外部路径内部

Javascript HTML5画布:检查上下文路径是否在外部路径内部,并且仅在外部路径内部,javascript,html,canvas,wkwebview,Javascript,Html,Canvas,Wkwebview,我正在制作一个混合游戏原型,它是一个HTML5画布,位于WKWebView中,旨在帮助孩子们学习如何识别和书写字母。下面是一个所需场景的示例屏幕截图:用户在一封信中进行跟踪 问题是如何确定他们何时/是否完成了任务。我看到在中经常使用.isPointInPath()。由此,我知道如何确定当前绘制的坐标是否位于另一个上下文路径内,但我不知道从那里可以走到哪里。我用以下方法来画这封信: ctx.font = '400pt -apple-system'; ctx.fillStyle = 'rgba(0

我正在制作一个混合游戏原型,它是一个HTML5画布,位于
WKWebView
中,旨在帮助孩子们学习如何识别和书写字母。下面是一个所需场景的示例屏幕截图:用户在一封信中进行跟踪

问题是如何确定他们何时/是否完成了任务。我看到在中经常使用
.isPointInPath()
。由此,我知道如何确定当前绘制的坐标是否位于另一个上下文路径内,但我不知道从那里可以走到哪里。我用以下方法来画这封信:

ctx.font = '400pt -apple-system';
ctx.fillStyle = 'rgba(0,0,0,.1)';
ctx.fillText('S', 32, 500);

我曾考虑过将字母划分为几个热点,首先查看该点是否位于整体形状内,然后查看它和其他点是否已完成所有热点。然而,这感觉不雅。解决此问题的最佳方法是什么?

您需要将字体转换为路径。我找到了一种将svg转换为画布的方法,这样您就可以在svg中创建字母并将其转换为路径,谢谢@MoshFeu,我将对此进行研究now@RyanBrodie. 没时间…快提建议!1.在画布上画你的信,2。使用
getImageData
确定哪些像素是不透明的(不透明==字母内部),3。听鼠标移动。如果鼠标位于不透明像素上,则位于字母内部。如果鼠标在一个透明像素上,你就在外面。解决方案:使用您的热点想法!将信件分成多个部分,逐步完成信件。用#1-3测试鼠标移动。当孩子们将鼠标移到不透明像素外时,给他们反馈。当孩子们回到以前的热点(=已经去过)时,给他们反馈。我得走了@马克,我喜欢你的想法!我早上第一件事就要开始了,谢谢。这对你有用吗?