我正在统一制作游戏(c#)。 在游戏中,我需要将玩家制作的形状与我存储在数据库中的形状进行比较,并确定该形状是否与它们中的任何一个相似,如果是,则将玩家制作的形状与所存储的形状有多接近-将有20个最终有-50个形状。
-Shape是一个列表,用于存储游戏每次更新中鼠标位置的像素位置xy(单位更新发生在不同的时间-但我可以将其移动到fixedUpdate,因此时间距离相同) 。 -创建形状的点数不是恒定的,并且相同形状的点长度可能会非常不同。 -100%匹配的形状必须与存储的形状相同,并且方向相同。 -我有一个数据库,将形状存储在列表中。
问题在于,如果我将任何形状与形状边缘相距很近的im进行比较,则返回的值与尝试创建相同形状的值相同。
我不会仅将所有函数添加到它们的调用上,因此更容易理解(0 = x,1 = y):
computeBackwards(sum2Arrays(DtwArray(newShape,oldShape,0),DtwArray(newShape,oldShape,1))));
computeBackwards(DtwArray(newShape,oldShape,0))+ computeBackwards(DtwArray(newShape,oldShape,1))
computeBackwards(DtwArray(MagicShapeSaver.angleChangeMagic(newShape),MagicShapeSaver.angleChangeMagic(oldShape),0))
computeBackwards(DtwArray(MagicShapeSaver.angleChangeMagic(newShape),MagicShapeSaver.angleChangeMagic(oldShape),0))
如果您对我如何解决这个问题有任何想法-无论是否使用dtw,它都会使我非常震惊!