我正在尝试找到在网格中没有障碍物情况下两点之间的最短路径,并且可以朝着所有方向移动(N NE E ES S SW W WN)。
这似乎是一个常见的任务... Matlab没有实现吗?当Matlab绘制连接两个点的线(plot(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));
但我认为它返回的点数比应该返回的多,可能有一个已经实现的例程。
非常感谢。