我需要让用户在网格上绘制路径但没有精确度 - 算法应该调整路径。
示例图像,其中红线表示用户将绘制的连续路径,蓝点是最终路径
或
我正在考虑关于交叉点(红点)的事情,所以我会添加交集到路径查找的列表,直到当前输入和可能是一些加权图方法,但没有最终的想法。我对此有任何建议表示感谢。
答案 0 :(得分:1)
只是为了确保我看到它的正确方式:
曲线意味着尽可能接近它......
[注释]
答案 1 :(得分:0)
在任何时候你都可以改变X或改变Y,而不是两者,所以你可以使changeX成为一个布尔值,其中changeY为NOT。假设changeX为true。然后,您只需获取用户输入的X坐标。对于用户输入的~changeX和Y坐标,反之亦然。
变量changeX只能在交叉点改变。决定是否更新的一种方法是计算哪个下一个点最接近指针。您只需要比较距离的平方,这样就可以节省昂贵的平方根计算。
你可能在那个基础上计算每一个下一个点,但是当网格是正方形时,这可能是过度的。