Randomly moving circles in a graph

I have created circles by the help of fill command. how can I make them movingly linearly.
fill(xobs(k)+robs(k)*cos(theta),yobs(k)+robs(k)*sin(theta),[1 0 0]);
They can be moving in circular motion.

 采纳的回答

You can record the handles returned by fill(), which will be handles of patch objects. The patch objects that are created will have a Vertices property which will be an N x 2 array. You can change the Vertices property to update the locations, such as
rot = makehgtform('zrotate', 15*180/pi);
V = h.Vertices;
temp = [V,zeros(size(V,1),2)] * rot;
h.Vertices = temp(:,1:2);

6 个评论

xobs=[1.5 4.0 1.2 7.0 8.0];
yobs=[4.5 3.0 1.5 5.0 8.0];
robs=[1.5 1.0 0.8 1.0 1.0];
theta=linspace(0,2*pi,100);
for k=1:numel(xobs)
fill(xobs(k)+robs(k)*cos(theta),yobs(k)+robs(k)*sin(theta),[1 1 0]);
end
This is code I need these circles to be moving linearly
xobs=[1.5 4.0 1.2 7.0 8.0];
yobs=[4.5 3.0 1.5 5.0 8.0];
robs=[1.5 1.0 0.8 1.0 1.0];
theta=linspace(0,2*pi,100);
for k=1:numel(xobs)
fh(k) = fill(xobs(k)+robs(k)*cos(theta),yobs(k)+robs(k)*sin(theta),[1 1 0]);
xspeed(k) = randn()/2;
yspeed(k) = randn()/2;
end
for iterations = 1 : 100
for k = 1 : length(fh)
fh(k).Vertices = fh(k).Vertices + [xspeed(k), yspeed(k)];
end
drawnow();
end
The code assumes R2016b or later.
the code does not know what vertices are. and it does make acircle but not moving circles.
Put a
hold on
before the code here, and
hold off
after the "for k" loop.
the code doesnot recognize 'Vertices' it says Invalid or deleted object. Plus there is no motion in circles. only a single circle is plot
Code enclosed to prove that it does work. Also enclosed is a movie with proof that it works.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Networks 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by