我有一个第三方键盘应用程序是我正在尝试从我拥有的关键地图数据文件中理解的算法。它监视您敲击键盘的方式,然后调整幕后的可点击区域,以便更准确地接受用户输入。我现在正试图在我正在制作的小游戏中模仿这个键盘概念。
以下是键盘字母V
{
"v" :
{
"characters" : [ "v" ],
"feature-threshold-multiplier" : 1.0,
"initial-scale-multiplier" : 1.0,
"mean" :
{
"dof" : 40,
"mode" : [ 210.0367889404297, 138.3223266601562 ]
},
"precision" :
{
"dof" : 40,
"mode" :
[
0.003064915072172880,
-0.0009184600203298032,
-0.0009184600203298032,
0.006329041905701160
]
},
"prior-mean" : [ 207.0, 142.50 ],
"prior-precision" : [ 0.004667554982006550, 0.0, 0.0, 0.004667554982006550 ]
}
}
问题
我现在要弄清楚的是,数据集的哪个部分决定了可点击区域的大小以及哪个部分决定了旋转。
我的发现
我注意到的一些事情可能有助于其他人帮助我理解密钥及其价值与实际相关的内容:
precision
- > mode
包含两个值,每个字符映射始终相同。 dof
和mean
都有mode
个密钥
mean
数组,它们总是一样的。到目前为止,一位朋友已经能够找出哪个关键值对于每个可点击密钥的定位有何意义。
mode
- > positioning
包含x和y位置。
此链接显示给定角色数据集的代码输出呈现。
http://codepen.io/martinlindhe/pen/yebpgO
您会注意到输出与下面显示的可点击键映射的确切POST
匹配。
答案 0 :(得分:0)
我只能在这里猜测,但我的赌注是:
pos = 210.0367889404297, 138.3223266601562
位置(角或中心)和
0.0030649150721728800,-0.0009184600203298032
-0.0009184600203298032, 0.0063290419057011600
是2 x 2D基矢量(因此,点击区域的大小和方向)和size = 40
(或多或少与位置匹配)。我看到2种可能的布局(行主要或列主要),但是您的数据是对称的,因此无法分辨两者是哪一种:
u = 40 * ( 0.0030649150721728800,-0.0009184600203298032)
v = 40 * (-0.0009184600203298032, 0.0063290419057011600)
由于您未提供有关坐标系的任何信息,并且位置根本不与图像匹配(您发布了最有可能的缩放图像),因此我无法验证其中任何一个。唯一可见的是u
是~2
大小的v
倍,并且这是 V 键(我假设),然后我看到了这样(从您提供的所有数据中推断):
您可以看到u
向量已被镜像(上帝知道原因)。
要进行验证,您不仅应该检查/比较单个键。要获得缩放比例,我会选择W,Z,M,O
,因为它们会形成几乎覆盖整个键盘的几乎一个矩形...并且还要检查旋转角度不同的键以验证怪异的镜像。