2007年3月29日

3/28-第四次作業





作業四 b94611040 廖婉婷

4.1
triangle=[0 0;25 0;0 25*sqrt(3);-25 0;0 0];line(triangle(:,1),triangle(:,2),'color','black');%將triangle矩陣全部畫出
h=line(triangle(:,1),triangle(:,2));axis([-100 100 -100 100]);axis equal;
for i=1:1:360 rotate(h,[0 0 1],1,[-25 0 0]); %三角形繞第一角座標-25,0,0作旋轉 pause(0.005); %每一度停止0.005秒end;
for i=1:1:360 rotate(h,[0 0 1],1,[0 25*sqrt(3) 0]); %三角形繞第二角座標0,25*根號3,0作旋轉 pause(0.005);end;
for i=1:1:360 rotate(h,[0 0 1],1,[25 0 0]); %三角形繞第三角座標25,0,0作旋轉 pause(0.005);end;




(圖4-1-1)繞第一角旋轉



(圖4-1-2)繞第二角旋轉

(圖4-1-3)繞第三角旋轉




(圖4-1-4)回到中心





4.2

function linkshape(A,B,d)coordinates of link%d:厚度if nargin==2,d=1;end;d=abs(d);AB=(B(1)+j*B(2))-(A(1)+j*A(2));D=abs(AB);th=angle(AB);t=linspace(pi/2,2.5*pi,20);Cout=max(d/2,0.2)*exp(j*t');Cin=Cout/2;if d>0, P=[0;Cin;Cout(1:10);D+Cout(11:20);D+Cin;D+Cout(20);Cout(1)];else P=[Cin;0;D;D+Cin];endxx=real(P);yy=imag(P);x=xx*cos(th)-yy*sin(th)+A(1);y=xx*sin(th)+yy*cos(th)+A(2);line(x,y)axis equal
linkshape([0 0],[10,0],4)axis([-20 20 -20 20])axis equal;
r=10; %r相當於圓半徑for n=1:20:360;x=r*cosd(n); %圓周上任一點之x,y座標y=r*sind(n);
linkshape([0,0], [x,y], 4) %畫出繞原點旋轉之連桿運動情形
x2=15;y2=0;line([x,x2],[y,y2],'color','black'); %畫出每次連桿位置變化後與彈簧連接之情形end;





4.3

axis([-10 20 -10 10]);axis equal;linkshape([0 0],[10 0],2); linkshape([0 0],[3 4],3); linkshape([3 4],[13 4],1.5); linkshape([13 4],[10 0],2); %畫出四個連桿
for n=0:30:360;a=3*cosd(n)+4*sind(n); %圖形作角度轉換b=-3*sind(n)+4*cosd(n);c=a+10;
linkshape([0 0],[10,0],2);linkshape([0 0],[a,b],3);linkshape([a b],[c,b],1.5);linkshape([c b],[10,0],2); %畫出轉換後的四個連桿
end;





(圖4-3-1)最初四個連桿之位置關係






(圖4-3-2)每隔30度旋轉的四連桿對應位置








1 則留言:

不留白老人 提到...

程式部份請使用<pre>...</pre>分隔,可以使內容更清楚。