我正在尝试对跳跃的 pogo 棒进行简单的模拟。我创建了一个 GUI,用户可以在其中选择不同的图表来比较速度、角度……我还模拟了 pogo 摇杆摆动一些钟摆,它们在自己的图中可以正常工作。然而,问题是不断更新 GUI 中的图形。与 GUI 图中一样,它只显示最后一帧。
我可以在我的 GUI 代码中使用某种周期性中断功能来不断更新动画吗?或者我在哪里可以找到一些主要类型的函数,我可以在它等待 GUI 中断时添加代码?还有其他想法吗?
这是运行动画的代码。
simulation_on = 1;
for j=2:length(t)
if simulation_on == 1,
figure(2);
clf
hold on
scale = 3; %scale the simulation drawing
framesize = 1;
foot = [0 0];
body = [0.01*scale lb*2*scale];
pbody = [radiusshaft*scale lengthshaft*scale]; %set body width,1 and hight,1
pfoot = [(foot(1)-body(2)*sin(-ab3set(j))) (foot(2)-body(2)*cos(-ab3set(j)))]; %set x position,1 and Y position,2
pw1foot = [(pfoot(1)+lengthshaft*sin(ap1set(j))*scale) (pfoot(2)-lengthshaft*cos(ap1set(j))*scale)];
pw2foot = [(pfoot(1)+lengthshaft*sin(ap2set(j))*scale) (pfoot(2)-lengthshaft*cos(ap2set(j))*scale)];
pwbody = [0.01*scale 0.01*scale];
drawing(foot,body,ab3set(j)-pi,framesize,'g');
drawing(pfoot,pbody,ap1set(j)-pi,framesize,'r');
drawing(pw1foot,pwbody,ap1set(j)-pi,framesize,'r');
drawing(pfoot,pbody,ap2set(j)-pi,framesize,'b');
drawing(pw2foot,pwbody,ap2set(j)-pi,framesize,'b');
%pause(timestep);
hold off
end
end
绘图函数仅用于fill()
绘制图形参数。