plaza(ceil(plazalength/2),[3:1+B]) =-1;
%left: angle of width decline for boundaries toptheta = 1.3; bottomtheta = 1.2;
for col = 2:ceil(B/2-L/2) + 1
for row = 1:(plazalength-1)/2 - floor(tan(toptheta) * (col-1)) plaza(row, col) = -1; end
for row = 1:(plazalength-1)/2 - floor(tan(bottomtheta) * (col-1)) plaza(plazalength+1-row, col) = -1; end end
fac = ceil(B/2-L/2)/floor(B/2-L/2);
%right: angle of width decline for boundaries toptheta = atan(fac*tan(toptheta));
bottomtheta = atan(fac*tan(bottomtheta));
for col = 2:floor(B/2-L/2) + 1
for row = 1:(plazalength-1)/2 - floor(tan(toptheta) * (col-1)) plaza(row,B+3-col) = -1; end
for row = 1:(plazalength-1)/2 - floor(tan(bottomtheta) * (col-1)) plaza(plazalength+1-row,B+3-col) = -1; end end
buspla=plaza;
子程序move_forward
function [plaza, v, time,buspla] = move_forward(plaza, v, time, vmax,buspla)
%
% move_forward car move forward governed by NS algorithm: %
% 1. Acceleration. If the vehicle can speed up without hitting the speed limit
% vmax it will add one to its velocity, vn -> vn + 1. Otherwise, the vehicle
% has constant speed, vn -> vn . %
% 2. Collision prevention. If the distance between the vehicle and the car ahead
% of it, dn , is less than or equal to vn , i.e. the nth vehicle will collide
% if it doesna