查看: 109|回复: 0|关注: 0

[未答复] A*算法的程序出现m的那块是什么意思?

[复制链接]

新手

5 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 2019-10-9 21:54:32 | 显示全部楼层 |阅读模式
function path=AStar(obstacle,p)

path=[];
open=[p.start(1) p.start(2) h(p.start,p.goal) p.start(1) p.start(2)];
close=[];
next=MotionModel();
findFlag=false;%目标标志
while ~findFlag
      if isempty(open(:,1)) disp('No path to goal!!');
       return;
      end
       [Y,I] = sort(open(:,3))
        open=open(I,:);
        if isSamePosi(open(1,1:2),p.goal)
            disp('Find Goal!!');
             close=[open(1,:);close]  
             open(1,:)=[];
             findFlag=true;
          break;
        end
         for in=1:length(next(:,1))
         
          m=[open(1,1)+next(in,1) open(1,2)+next(in,2) open(1,3)];
          %m(3)=m(3)+next(in,3)+h(m(1:2),p.goal)-h(open(1,1:2),p.goal);
         
          m(3)=next(in,3)+h(m(1:2),p.goal);
          if isObstacle(m,obstacle) continue; end
         
         
          [flag, targetInd]=FindList(m,open,close)
      
          if flag==1
              disp('cao')
              continue;
          elseif flag==2
              continue;
          else
              
              open=[open;[m open(1,1) open(1,2)]]
          end
         end
        if findFlag==false
          close=[close; open(1,:)]
          open(1,:)=[];
      end
   
end
path=GetPath(close,p.start);
            
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表