删除模式方法
优质
小牛编辑
137浏览
2023-12-01
用EraseMode
属性适合于画面变化最小的简单图的长序列。这里有一个例子放映模拟的布朗运动。指定点的数目,例如
n = 20
以及温度或速度,例如
s = .02
这两个参数的最佳值决定于你的计算机的速度。生成n个随机点,其(x,y)坐标介乎-1/2和+1/2。
x = rand(n,1)-0.5; y = rand(n,1)-0.5;
在边界为-1和1的正方形作出各点。保存点的向量的句柄并把它的EraseMode
设置为“异或”。这让MATLAB的图形系统在某点的坐标发生变化时不重画全图,而是用“异或”运算把该点的邻域的背景色保存起来。
h = plot(x,y,'.'); axis([-1 1 -1 1]) axis square grid off set(h,'EraseMode','xor','MarkerSize',18)
现在让动画开始。这里有一个无穷的while
循环,你可以最后输入Ctrl+c退出循环。每次循环,添加一个小的正态分布的随机噪声到点的坐标。然后,不是重创全新图,只是简单的变化原图的XData
和YData
ow属性。
while 1 drawnow x = x + s*randn(n,1); y = y + s*randn(n,1); set(h,'XData',x,'YData',y) end
一个点跑出正方形要多长时间?所有点逃出方框又要多久?