移动火车点数(汽车)
问题描述:
我们试图模拟使用不同颜色和大小的点(汽车类型1:红色尺寸20,汽车类型2:绿色尺寸40等)的移动汽车,问题是如果有是它们重叠,他们应该遵循相互相同类型的两辆车,这是使用代码:移动火车点数(汽车)
x = linspace(0,30,1000);
axis([0,20,-0.4,1.5]);
ax = gca;
h = hgtransform('Parent',ax);
type1=plot(-1,0.4,'s','Parent',h,'MarkerFaceColor','red','MarkerSize',20);
type2=plot(-1,0.4,'s','Parent',h,'MarkerFaceColor','green','MarkerSize',40);
car=[1 2 2 1 1];
for k = 1:10:700
for i = 1:length(car)
if(car(i)==1)
set(type1,'XData',x(k),'YData',0.4);
pause(0.1);
elseif(car(i)==2)
set(type2,'XData',x(k)-3,'YData',0.4);
pause(0.1);
end
end
end
如何保持序列,每一个(X = 3)新车启动时不删除或过度研磨移动在它前面的汽车。
Thanks inadvance
答
您可能想要下面的代码。
x = linspace(0,30,1000);
axis([0,20,-0.4,1.5]);
ax = gca;
car=[1 2 2 1 1];
h = hgtransform('Parent',ax);
Ncar=length(car);
for n=1:Ncar %generate 5 cars having one type among type1 and type2
if car(n)==1;
types(n)=plot(-1,0.4,'s','Parent',h,'MarkerFaceColor','red','MarkerSize',20);
else
types(n)=plot(-1,0.4,'s','Parent',h,'MarkerFaceColor','green','MarkerSize',40);
end
end
for k = 1:10:700 %plotting the cars sequencially
for i = 1:length(car)
set(types(i),'XData',x(k)-3*(i-1),'YData',0.4);
pause(0.1);
end
end
这很好,它运作良好 – user3332603