所以我需要在圆圈内的随机位置每步生成10个粒子,以便在随机方向上移动,当它撞到主圆的墙壁时,它会反弹而不会改变速度。
我定义了大圆圈:
yc=0;
rc=5;
ang_c=0:0.01:2*pi;
xpc=rc*cos(ang_c);
ypc=rc*sin(ang_c);
plot(xc+xpc,yc+ypc,'k');
现在只绘制一个粒子:
r=0.05;
x=rand;
y=rand;
ang=0:0.01:2*pi;
xp=r*cos(ang);
yp=r*sin(ang);
plot(x+xp,y+yp,'b');
现在如何让粒子在圆圈中移动?
答案 0 :(得分:0)
以下是算法概要
particlePositions
。用圈内的随机坐标填充plot
particleSpeeds
。用随机速度向量(即x-和y-分量)填充它。确保向量的范数远小于圆的半径,至少最初是这样。particlePositions = particlePositions + particleSpeeds
; set(plotHandle,'xData',particlePositions(:,1),'yData',particlePositions(:,2))