Matlab 图形在连续运行中不更新
Matlab graphics do not update in successive runs
我创建了一个 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
.
像这样的东西应该可以在绘制下一个之前清除矩形
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
如何使用 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
我创建了一个 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
.
像这样的东西应该可以在绘制下一个之前清除矩形
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
如何使用 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