如何绘制一个动画线条使用我的数据?

8视图(30天)
%宣布球初始条件
R_Ball = 2;
initpos。x = 0;
initpos。y = 2.4;
initvel。x = 2;
initvel。y = 4;
重力。x = 0;
重力。y = 9.81;
赔偿= 0.7;
GroundBall_friction = 0.2;
%动画步伐
dt = 0.01;
%执行动画
pos.x = initpos.x;%初始位置
pos.y = initpos.y;%初始位置
vel.x = initvel.x;%初始velocity-x
vel.y = initvel.y;%初始velocity-y
t_arc = linspace (0 (2 * vel.y) / gravity.y 5000);
k = 1:5000
%更新球的位置
vel.x = vel.x;
vel.y = vel.y - gravity.y * t_arc (k);
pos.x = pos.x + vel.x * t_arc (k);
pos.y = pos.y + vel.y * t_arc (k) - (1/2) * gravity.y * (t_arc (k)。^ 2);
如果vel.y < 0 & & pos.y < 0
vel.y =(赔偿)* vel.y;
vel.y = -vel.y;
vel.x = vel.x + GroundBall_friction *(归还- 1)* vel.x;
结束
clf;
%绘制帧
次要情节(2,1,1)
持有
30线([0],[0 0]);
矩形(“位置”,(pos。x pos.y R_Ball R_Ball),“弯曲”[1],“FaceColor”,“r”);
轴([0 30 0 10]);
轴(“平等”);
持有
次要情节(2,1,2)
轴([0 30 0 10]);
轴(“平等”);
%刷新率
暂停(dt)
结束
我怎么画一个次要情节中的动画行(2,1,1)的x和y速度随着同一时期我的弹力球吗?

接受的答案

约翰Chilleri
约翰Chilleri 2017年2月11日
你好,
在这种情况下,我建议只绘制线的每一步发展。
你可以记录你的x和y位置计数器变量和策划,我粘贴代码有以下变化:
数= 1;% % % % % % % % % % % %
%宣布球初始条件
R_Ball = 2;
initpos。x = 0;
initpos。y = 2.4;
initvel。x = 2;
initvel。y = 4;
重力。x = 0;
重力。y = 9.81;
赔偿= 0.7;
GroundBall_friction = 0.2;
%动画步伐
dt = 0.01;
%执行动画
pos.x = initpos.x;%初始位置
pos.y = initpos.y;%初始位置
vel.x = initvel.x;%初始velocity-x
vel.y = initvel.y;%初始velocity-y
t_arc = linspace (0 (2 * vel.y) / gravity.y 5000);
k = 1:5000
%更新球的位置
vel.x = vel.x;
vel.y = vel.y - gravity.y * t_arc (k);
pos.x = pos.x + vel.x * t_arc (k);
pos.y = pos.y + vel.y * t_arc (k) - (1/2) * gravity.y * (t_arc (k)。^ 2);
如果vel.y < 0 & & pos.y < 0
vel.y =(赔偿)* vel.y;
vel.y = -vel.y;
vel.x = vel.x + GroundBall_friction *(归还- 1)* vel.x;
结束
clf;
%绘制帧
次要情节(2,1,1)
持有
30线([0],[0 0]);
矩形(“位置”,(pos。x pos.y R_Ball R_Ball),“弯曲”[1],“FaceColor”,“r”);
轴([0 30 0 10]);
持有
次要情节(2,1,2)
posxx(数)= pos.x;% % % % % % % % % % % %
posyy(数)= pos.y;% % % % % % % % % % % %
情节(posxx posyy,“r”)% % % % % % % % % % % %
轴([0 30 0 10]);
数=计数+ 1;% % % % % % % % % % % %
%刷新率
暂停(dt)
结束
注意,我也删除你的轴等于命令他们反驳你的轴([0 30 0 10])命令(你没有他们不会注意到有什么差别,但它将车)。
我最后的评论似乎是你的x和y位置的左侧球,所以你可能要算出的变量代表的中心球向右(或转移这些球的半径增加球的半径posxx添加行)。
希望这可以帮助!
2的评论
约翰Chilleri
约翰Chilleri 2017年2月12日
抱歉的误解,但是我猜你已经知道如何这样做!如果你陷入困境,你只需要改变我所添加到存储vel.x vel.y然后情节分别在第二次要情节随着时间的推移,当x(和韦尔x / y y)。

登录置评。

更多的答案(0)

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!