0

我正在尝试对跳跃的 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()绘制图形参数。

4

0 回答 0