代码演示
% 基于栅格地图的机器人路径规划算法
% 第1节:利用Matlab快速绘制栅格地图
clc
clear
close all
%% 构建颜色MAP图
cmap = [1 1 1; … % 1-白色-空地
0 0 0; … % 2-黑色-静态障碍
1 0 0; … % 3-红色-动态障碍
1 1 0;… % 4-黄色-起始点
1 0 1;… % 5-品红-目标点
0 1 0; … % 6-绿色-到目标点的规划路径
0 1 1]; % 7-青色-动态规划的路径
% 构建颜色MAP图
colormap(cmap);
%% 构建栅格地图场景
% 栅格界面大小:行数和列数
rows = 10;
cols = 20;
% 定义栅格地图全域,并初始化空白区域
field = ones(rows, cols);
% 障碍物区域
obsRate = 0.3;
obsNum = floor(rows*cols*obsRate); %定义障碍物的数量
obsIndex = randi([1,rows*cols],obsNum,1); %定义障碍物的线性索引值
field(obsIndex) = 2; %将地图区域中障碍物的值设置为2
% 起始点和目标点
startPos = 2;
goalPos = rows*cols-2;
field(startPos) = 4;
field(goalPos) = 5;
%% 画栅格图
image(1.5,1.5,field);
grid on;
set(gca,'gridline','-','gridcolor','k','linewidth',2,'GridAlpha',0.5); %设置栅格线条的样式(颜色、透明度等)
set(gca,'xtick',1:cols+1,'ytick',1:rows+1); %设置横纵方向上步长为1
axis image;
axis tight 将坐标轴显示的框调整到显示数据最紧凑的情况
也就根据x,y坐标的最大值和最小值最紧凑调整坐标轴的显示范围,
axis equal 等比例显示x,y坐标轴,由于x,y轴的范围是可以分辨调整的
所以很容易让得到的图像在屏幕上显示,x,y方向的比例不一致,圆形显示为椭圆形
为了方便比较,这个命令可以让x轴和y轴比例一致
但是分别执行以上两个命令,会互相覆盖,紧凑显示的时候,比例不对
比例对了的时候,显示不紧凑,留太多空白
axis image
相当于以上两个命令的合体,能够同时实现紧凑以及xy比例一致两个功能
总结:
Image()函数根据矩阵来绘制栅格图,矩阵中的数值代表颜色的类别;
颜色的类别可以通过colormap()函数固定有哪些(矩阵中的数值为cmap中的index(索引值));
从而Image通过矩阵中数值显示的数值只能来自于colormap中的;
axis image设置栅格图x、y比例相等
手机扫一扫
移动阅读更方便
你可能感兴趣的文章