www.gusucode.com > robotics 案例源码程序 matlab代码 > robotics/GetGridCellsAlongARayExample.m

    %% Get Grid Cells Along A Ray
% Use the |raycast| method to generate cell indices for
% all cells traversed by a ray. 

%% 
% Create an empty map. A low resolution map is used to illustrate the
% affect of grid locations.
map = robotics.OccupancyGrid(10,10,1);
show(map)

%%
% Get the grid indices of the midpoints and end points of a ray from |p1| 
% to |p2|. Set occupancy values for these grid indices. Midpoints are treated as
% open space. Endpoints are updated with an occupied observation.
p1 = [2 3];
p2 = [8.5 8];
[endPts,midPts] = raycast(map,p1,p2);
setOccupancy(map,midPts,zeros(length(midPts),1),'grid');
setOccupancy(map,endPts,ones(length(endPts),1),'grid');

%%
% Plot the orginal ray over the map. Notice that each grid cell touched by the
% line is updated. The starting point overlaps multiple cells and the line
% touches the edge of certain cells, but all the cells are still updated.
show(map);
hold on
plot([p1(1) p2(1)],[p1(2) p2(2)],'-b','LineWidth',2)
plot(p2(1),p2(2),'or')
grid on