【问题标题】:Shortest path between two points in a Grid (Matlab)网格中两点之间的最短路径(Matlab)
【发布时间】:2011-11-15 15:07:41
【问题描述】:

我正在尝试在没有障碍物的情况下找到网格中两点之间的最短路径,并向所有方向移动 (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));

但我认为它返回的分数比它应该返回的多,也许有一个已实现的例程。

非常感谢

【问题讨论】:

  • 我看不懂 :) 您可以(并且应该)编辑问题并添加代码。
  • 你的意思是像Bresenham line algorithm这样的吗?
  • @J.F. Sebastian 就是这样 :) Bresenham 线算法正是我所需要的谢谢
  • @rauldg:将其添加为答案,如果需要,请接受。

标签: algorithm matlab shortest-path


【解决方案1】:

解决方案(由 J.F. Sebastian 提供)是Bresenham Line Algorithm

【讨论】:

  • @J.F Sebastian 喜欢这个?我不能将您的评论投票为正确答案吗?
  • J.F.Sebastian 必须自己添加答案。然后可以投票并接受答案,因此 J.F.Sebastian 将获得积分。评论upvoting不会给任何积分。如果你自己回答他,他不会得到任何分数。
猜你喜欢
  • 2012-12-18
  • 2011-01-27
  • 2017-02-06
  • 2017-02-03
  • 2016-03-04
  • 2018-09-18
  • 2023-04-01
  • 2016-07-22
  • 1970-01-01
相关资源
最近更新 更多