我目前正在开发一个教育性的Windows应用商店应用,用户可以在该应用中跟踪字母(例如,A,B,C,但不限于英语),以了解写作的基本知识。< / p>
如何检测输入,然后使用C#和XAML将其与字母的图像蒙版进行比较?
答案 0 :(得分:0)
要执行此操作,您需要使用某种方法来栅格化您希望用户跟踪的文本。然后,为了提供关于它们是否正确跟踪的反馈,您需要不断地听取绘制事件并将输入与它们应该绘制的内容进行比较。
基本上,如果用户在画布上绘制某个路径或一组路径,您将希望能够提供关于它们是否正确的即时反馈。为了给你一些指导,我建议你阅读this answer on SO,它大致描述了如何捕获输入并在画布上绘制它。
从那里你应该考虑将用户的输入与他们应该绘制的字母的图像相匹配。这需要一定量的图像匹配。为了帮助您入门,我建议您阅读this post on SO的所有答案。
由于您似乎总体上缺乏方向,因此我们可以了解您的计划的结构:
加载要绘制的当前字母,并确保执行适当的计算以尽可能预先确定与输入进行比较。根据上面的第二个链接,这意味着您应该在允许用户开始跟踪之前调用GetPixel
来绘制字母(另请注意,您可能希望缩小图像以获得更好的性能)。您还需要确定匹配阈值。尝试从70%开始。
在画布上捕获用户的输入,如第一个链接中所述。您可能想要调整画笔宽度,但该帖子是一个很好的开始。
在MouseMove
事件中,您还需要偶尔检查一下它们与应该绘制的字母的匹配程度。
一旦用户的输入超出匹配阈值,请转到下一个字母。您可能需要根据匹配百分比考虑向他们提供他们的表现。
尝试使用画笔宽度,图像分辨率以及将输入与字母进行比较的频率等值。同时尝试尽可能多地进行图像处理,同时在移动到下一个要绘制的字母时显示“加载”提示。