代碼演示
% 基於柵格地圖的機器人路徑規划算法 % 第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比例一致兩個功能
也就根據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比例相等