2013-07-09 60 views
3

首先;对不起,如果这是一个错误的地方问这样一个问题。
如果我犯了这个错误,随意下大拇指或关闭主题。帆布形状识别功能

我最近开始用html5,jquery和canvas“玩”。

我想创建一个小的移动网站的游戏,这是一个简单的快“对的形状”:

网站显示3种形状(即:方形,圆形,方形)和玩家猜测什么形状接下来。要做到这一点,玩家必须简单地在他的手机上绘制形状。例如:

例如:形状是正方形,圆形,正方形。玩家只需用拇指在他的iPhone屏幕上“画”一个圆圈,这就是好的 - >下一个级别!

的问题是,我真的不知道如何检查,如果玩家创造了一个圆形,正方形或其他形状。

起初,我想过一个手写识别和发现了一个有用的链接:http://brenoferreira.wordpress.com/2012/03/14/handwriting-recognition-com-html5-canvas/(我不会说葡萄牙语,但任何的代码说明了一切)

他用ASP.NET MVC 4 + JSON代码在服务器端,我的问题是;自笔者2012年3月撰写这篇文章以来,还有其他解决方案吗?

我真的不想使用ASP.NET,是否有可能使用其他代码创建类似的东西? (我认为PHP将无法做到这样的事情)。

我还发现这http://home.comcast.net/~urbanjost/canvas/graffiti/graffiti.html这也是相关的。

我很确定它可以做到。 在此先感谢提示/资源/帮助。

回答

1

对于简单的形状,这些可以使用的角度差,膝关节值来获得在形状的很好的猜测。

对于在中风记录的所有点(或所有笔划合并成一个路径为一个会话)的所有形状。

对于正方形,您可以逐行(前一个点和当前点)来计算它们之间的角度。如果角度超过阈值(f.ex. 50度),那么你有一个角落。如果你最终有三个角落,并且终点靠近起点,那么你可能有一个正方形。同时考虑重量相对于整个绘图区域的位置。

对于圆形,您可以加权所有线条的平均角度。他们都会在一定程度上向一个方向前进。正如方块一样,检查终点是否位于起点的“区域”。

当前版本的帖子陈述:“形状是正方形,圆形,方形。” - 如果我假设最后一个应该是三角形,则该过程与正方形相同,只需以更陡的角度计算两个角。

您可以使用平滑算法,移动平均,点减少算法等来处理更简单的数据。它最终都是关于统计和概率。 (这是一个广泛的话题,所以我有点不愿意为此产生代码,但我希望理论有助于理解)。

代码计算角度(X1,Y1是目前点位,X2和Y2上一点):

var ang = Math.atan2(y2 - y1, x2 - x1) * 180/Math.PI; 

(你可以做BTW在香草的JavaScript所有这些计算)。

+0

感谢您的快速回答! 阅读后,我已经想出了如何创建小algorythm(我们可以说这是一个algorythm?) 我创建了一个小代码记录画布上发生了什么,现在我只是试图找出如何确定角度。 由于这是一个简单的练习,我只会做方形识别。 再次,非常感谢! – Links

+0

@链接没问题的队友,欢迎来到:) – K3N