Algorithm 网格中两点之间的最短路径(Matlab)

Algorithm 网格中两点之间的最短路径(Matlab),algorithm,matlab,shortest-path,Algorithm,Matlab,Shortest Path,我试图找到网格中两点之间没有障碍物的最短路径,并向所有方向移动(N NE ES S SW W WN) 这似乎是一个共同的任务。。。这是不是已经在Matlab中实现了?当Matlab绘制两个由直线连接的点(图(X,Y,“-”)时,似乎在内部执行此计算,因为我猜生成的图像也是一个网格 示例:从[1,1]到[3,6],一种溶液为[1,1;2,2;2,3;2,4;3,5;3,6] 我试过: dist_x = length(linspace(p1(1),p2(1), dist(p1(1),p2(1

我试图找到网格中两点之间没有障碍物的最短路径,并向所有方向移动(N NE ES S SW W WN)

这似乎是一个共同的任务。。。这是不是已经在Matlab中实现了?当Matlab绘制两个由直线连接的点(图(X,Y,“-”)时,似乎在内部执行此计算,因为我猜生成的图像也是一个网格

示例:从[1,1]到[3,6],一种溶液为[1,1;2,2;2,3;2,4;3,5;3,6]

我试过:

    dist_x = length(linspace(p1(1),p2(1), dist(p1(1),p2(1))+1));
    dist_y = length(linspace(p1(2),p2(2), dist(p1(2),p2(2))+1));
    num_points = max(dist_x, dist_y);
    x = round(linspace(p1(1),p2(1),num_points));
    y = round(linspace(p1(2),p2(2),num_points));
但我认为它返回的分数比它应该得到的要多,也许有一个实现的例程


非常感谢

解决方案(由J.F.Sebastian给出)是这样的。

我看不懂:)你可以(而且应该)编辑问题并添加代码。你的意思是?@J.F.Sebastian就是这样:)Bresenham直线算法正是我所需要的Thanks@rauldg:添加它作为答案,如果它是你需要的,就接受它。@J.F塞巴斯蒂安,像这样?我不能投票表决你的评论为正确答案吗?J.F.塞巴斯蒂安必须自己添加答案。然后答案可以投票并被接受,因此J.F.塞巴斯蒂安将获得分数。投票不会给出任何分数。如果你把他的答案一个人说出来,他就得不到任何分数。