我创建了一个matlab图形图,然后绘制了几个矩形。
for i=1:size(rect,2)/2
rectangle('Position',[rect(i)-1,rect(i+2*size(rect,2)),5,2])
end
现在我想通过模拟时间流逝的for循环来循环它们。
daspect([1,1,1])
for t=0:0.1:6.28
for i=1:size(rect,2)/2
rectangle('Position',[rect(i)-1-2*sint(t),rect(i+2*size(rect,2))-2*sin(t),5,2])
end
pause(0.1)
end
矩形命令的问题在于t=0
,数字很好但是对于t=0.1
,新数字与t=0
的数字重叠,从而破坏了图形。修复是什么?我甚至没有使用hold on
。
答案 0 :(得分:0)
这样的东西应该在绘制下一个矩形之前清除矩形
for t=0:0.1:6.28
delete(h)
for i=1:size(rect,2)/2
h=rectangle('Position',[rect(i)-1-2*sint(t),rect(i+2*size(rect,2))-2*sin(t),5,2])
end
pause(0.1)
end
答案 1 :(得分:0)
如果使用findobj
查找矩形并将其删除,会出现什么?
for t=0:0.1:6.28
for i=1:size(rect,2)/2
hRect = findobj('Type','rectangle')
delete(hRect)
rectangle('Position',[rect(i)-1-2*sint(t),rect(i+2*size(rect,2))-2*sin(t),5,2])
end
pause(0.1)
end