flu*_*es1 5 algorithm filtering graph similarity line
我需要一种算法来计算两条绘制线之间的相似程度。这些线是使用鼠标绘制的,并在使用单独的算法进行过滤和平滑之前存储为一组笛卡尔坐标。
例如,在下图中:

A 线和 B 线明显相似,但 B 和 C 线不相似。算法应该反映这一点。此外,由起点和终点指示的线的“方向”也很重要。这样的算法是否已经存在?
一种简单的方法可以是计算两条线上对应点之间的距离之和。因此,我们假设两条线的长度几乎相同,并且线上的点数大致相同且等距。
1.平移线 2,使其起点与线 1 的起点相同。
2. 计算第1行和第2行对应点之间的距离之和。
3. 如果平均距离(即SUM/NUMBER_OF_POINTS)小于阈值,则线相似,否则线不同。
这可以扩展到支持不同尺寸的线。在这种情况下,只需放大较小的线以匹配较长的线,然后其余与上述方法类似。
除了计算距离之外,您还可以计算线条斜率的差异,如果任何点(或几个点,您需要为此进行一些实验)的斜率不同很高(高于某个阈值),那么它们就是不相似。