2016-06-21 73 views
-1

我们试图模拟使用不同颜色和大小的点(汽车类型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

回答

1

您可能想要下面的代码。

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 
+0

这很好,它运作良好 – user3332603