我有一个第三方键盘应用程序,它是我试图从一个关键的地图数据文件中理解的算法。它监视你敲击键盘的方式,然后调整幕后的触控区域,以便更准确地接受用户的输入。我现在也在尝试模仿这个键盘概念,作为我正在制作的一个小游戏。
这是键盘应用程序呈现的可点击字符映射:

下面是键盘字母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包含两个值,每个字符映射都是相同的。mean和mode数组都有一个mode键,而且它们总是一样的。到目前为止,一个朋友已经能够弄清楚什么是关键值之一,这有助于定位每个可触键。
mean -> mode包含x和y位置。此链接显示给定字符数据集的代码输出呈现。
http://codepen.io/martinlindhe/pen/yebpgO
您会注意到,输出与下面所示的tappable键映射的positioning完全匹配。
发布于 2018-09-30 09:06:39
我只能在这里猜到,但我打赌:
pos = 210.0367889404297, 138.3223266601562是位置(角或中间)和
0.0030649150721728800,-0.0009184600203298032
-0.0009184600203298032, 0.0063290419057011600是2x2D基向量(所以你的敲击区域的大小和方向)和size = 40 (它或多或少匹配位置)。我看到了两种可能的布局(行主布局或列主布局),但您的数据是对称的,因此无法区分两者都是哪一种:
u = 40 * ( 0.0030649150721728800,-0.0009184600203298032)
v = 40 * (-0.0009184600203298032, 0.0063290419057011600)因为你没有提供任何有关坐标系统的信息,而且这个位置与图像完全不匹配(你发布了最有可能缩放的图像),我无法验证其中的任何一个。唯一可见的是u,它是v大小的~2倍,因为这是一个V键(我猜想),然后我看到它是这样的(从您提供的所有数据中推断出来):

如您所见,u向量是镜像的(天知道原因)。
要验证,您应该检查/比较,而不仅仅是单键。为了得到缩放,我会选择W,Z,M,O,因为它们几乎形成一个矩形覆盖几乎整个键盘.还检查不同的旋转键以验证奇怪的镜像。
https://stackoverflow.com/questions/34685636
复制相似问题