代码拉取完成,页面将自动刷新
同步操作将从 Amate/A星算法-Matlab-网传原版 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
%% 寻找邻居节点(上下左右、左上、左下、右上、右下)
% N -- 返回邻居坐标
% mx,my -- 当前点的坐标
% Ex_min,Ex_max -- 地图中x坐标的范围
% Ey_min,Ey_max -- 地图中y坐标的范围
% C -- 地图覆盖矩阵
function N = find_frontier(mx,my,Ex_min,Ex_max,Ey_min,Ey_max,C,already_frontier)
neigh = zeros(2,0);
index = 1;
%检验邻居的合法性,是否在区域内,或是否在障碍物内或边界上
%上邻居
if check_coordinate(mx,my+1,Ex_min,Ex_max,Ey_min,Ey_max,C,already_frontier) == 1 %返回1表示合法
neigh(1,index) = mx;
neigh(2,index) = my+1;
index = index + 1;
end
%下邻居
if check_coordinate(mx,my-1,Ex_min,Ex_max,Ey_min,Ey_max,C,already_frontier) == 1
neigh(1,index) = mx;
neigh(2,index) = my-1;
index = index + 1;
end
%左邻居
if check_coordinate(mx-1,my,Ex_min,Ex_max,Ey_min,Ey_max,C,already_frontier) == 1
neigh(1,index) = mx-1;
neigh(2,index) = my;
index = index + 1;
end
%右邻居
if check_coordinate(mx+1,my,Ex_min,Ex_max,Ey_min,Ey_max,C,already_frontier) == 1
neigh(1,index) = mx+1;
neigh(2,index) = my;
index = index + 1;
end
%左上邻居
if check_coordinate(mx-1,my+1,Ex_min,Ex_max,Ey_min,Ey_max,C,already_frontier) == 1
neigh(1,index) = mx-1;
neigh(2,index) = my+1;
index = index + 1;
end
%右上邻居
if check_coordinate(mx+1,my+1,Ex_min,Ex_max,Ey_min,Ey_max,C,already_frontier) == 1
neigh(1,index) = mx+1;
neigh(2,index) = my+1;
index = index + 1;
end
%左下邻居
if check_coordinate(mx-1,my-1,Ex_min,Ex_max,Ey_min,Ey_max,C,already_frontier) == 1
neigh(1,index) = mx-1;
neigh(2,index) = my-1;
index = index + 1;
end
%右下邻居
if check_coordinate(mx+1,my-1,Ex_min,Ex_max,Ey_min,Ey_max,C,already_frontier) == 1
neigh(1,index) = mx+1;
neigh(2,index) = my-1;
end
N = neigh;
end
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。