2007年6月2日 星期六

第七次作業

1.1

圖示

我把function dyad_draw加入一個輸入參數t,此時可算出t秒時的角度,角速度.再帶入
[vec,data] = dyad(rho, theta+td*t+tdd*t^2/2, td+t*tdd,tdd);

程式碼

for t=1:1:5
ground(0,0,6,0)
anchor(-6,0,0,0)
dyad_draw([19 24 14],[0 0 0],[0.2,0.3,0.4],[0,0.1,0.2],t)
end

function dyad_draw(rho,theta,td,tdd,t)
[vec,data] = dyad(rho, theta+td*t+tdd*t^2/2, td+t*tdd,tdd);
x=[0;cumsum(real(data(:,1)))];y=[0;cumsum(imag(data(:,1)))];
for i=1:length(x)-1
linkshape([x(i) y(i)],[x(i+1) y(i+1)],1);
axis equal;
end
for i=1:length(x)-1
linkshape([x(i) y(i)],[x(i+1) y(i+1)],1);
end
for i=1:length(x)-1
linkshape([x(i) y(i)],[x(i+1) y(i+1)],1);
axis equal;
end
for k=1:length(rho)
x0=x(k+1);y0=y(k+1);
vx=x0+real(data(k,2));vy=y0+imag(data(k,2));
ax=x0+real(data(k,3));ay=y0+imag(data(k,3));
line([x0 vx],[y0 vy],'marker','s','linewidth',2);
line([x0 ax],[y0 ay],'marker','s','color','r','linewidth',3)
end
sdata=sum(data);
ss=[real(sdata(1)) imag(sdata(1))];
vv=[real(sdata(2)) imag(sdata(2))];
aa=[real(sdata(3)) imag(sdata(3))];
line([0 ss(1)],[0 ss(2)],'linestyle',':','linewidth',2)
line([ss(1) ss(1)+vv(1)],[ss(2) ss(2)+vv(2)],...
'marker','d','color','g','linewidth',3)
line([ss(1) ss(1)+aa(1)],[ss(2) ss(2)+aa(2)],...
'marker','d','color','m','linewidth',3)
axis equal;


1.3

動畫

程式碼

for t=1:0.3:5
axis equal
ground(0,0,6,0)
anchor(-6,0,0,0)
dyad_draw([19 24 14],[0 0 0],[0.2,0.3,0.4],[0,0.1,0.2],t)
pause(0.1)
if t<4.8
clf
end

沒有留言: