2007年4月25日 星期三

作業七

7-1

這次要用到教學網站上的anchor,ground,dyad和dyad_draw等function
原本的dyad_draw輸入的角度不會隨時間而變
所以如果能在原本的function多增加一個時間的參數
就能符合題目的要求
因此做以下的改變:
function dyad_draw_newt(rho,theta,td,tdd,t)
theta2=theta+td*t+tdd*t^2/2
td2=td+t*tdd
[vec,data] = dyad(rho,theta2,td2,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
接下來就可以執行了
程式碼如下:
ground(0,0,10,0)
anchor(-10,0,0,0)
for t=1:5
dyad_draw_newt([16 21 11],[0 0 0],[0.2,0.3,0.4],[0,0.1,0.2],t)
end


7-2


7-3

要讓本題以動畫呈現的話
可以用第一題的圖
我讓他呈現很多次
並且用clf清除每次產生的圖
就會有動畫的感覺了
程式碼如下:
for t=1:0.25:5
axis off
axis ([-25 50 -25 50])
ground(0,0,5,0)
anchor(-5,0,0,0)
dyad_draw_newt([16 21 11],[0 0 0],[0.2,0.3,0.4],[0,0.1,0.2],t)
pause(0.2)
if t<5
clf
end
end

沒有留言: