2007年4月24日 星期二

作業五

5-1-1
L1=8
armx1=[2 2*cosd(30) 2*cosd(45) 2*cosd(60) 2*cosd(90) 2*cosd(120) 2*cosd(135) 2*cosd(150) -2 -2 2*cosd(210) 2*cosd(225) 2*cosd(240) 2*cosd(270) 2*cosd(300) 2*cosd(315) 2*cosd(330) 2 2]
army1=[0 2*sind(30) 2*sind(45) 2*sind(60) 2*sind(90) 2*sind(120) 2*sind(135) 2*sind(150) 0 -L1 -L1+2*sind(210) -L1+2*sind(225) -L1+2*sind(240) -L1+2*sind(270) -L1+2*sind(300) -L1+2*sind(315) -L1+2*sind(330) -L1 0]
line(armx1,army1)
axis equal

L2=6
armx2=[0 2*cosd(120) 2*cosd(135) 2*cosd(150) 2*cosd(180) 2*cosd(210) 2*cosd(225) 2*cosd(240) 0 L2 L2+2*cosd(300) L2+2*cosd(315) L2+2*cosd(330) L2+2*cosd(360) L2+2*cosd(30) L2+2*cosd(45) L2+2*cosd(60) L2 0]
army2=-L1+[2 2*sind(120) 2*sind(135) 2*sind(150) 2*sind(180) 2*sind(210) 2*sind(225) 2*sind(240) -2 -2 2*sind(300) 2*sind(315) 2*sind(330) 2*sind(360) 2*sind(30) 2*sind(45) 2*sind(60) 2 2]
line(armx2,army2)
axis equal

L3=4
palmx=L1+[0 0 L3 L3 0 0]
palmy=-L1+[0 2 2 -2 -2 0]
line(palmx,palmy)
axis equal


5-1-2
function body(L1,L2,L3,theta1,theta2,theta3)

armx1=[2 2*cosd(30) 2*cosd(45) 2*cosd(60) 2*cosd(90) 2*cosd(120) 2*cosd(135) 2*cosd(150) -2 -2 2*cosd(210) 2*cosd(225) 2*cosd(240) 2*cosd(270) 2*cosd(300) 2*cosd(315) 2*cosd(330) 2 2]
army1=[0 2*sind(30) 2*sind(45) 2*sind(60) 2*sind(90) 2*sind(120) 2*sind(135) 2*sind(150) 0 -L1 -L1+2*sind(210) -L1+2*sind(225) -L1+2*sind(240) -L1+2*sind(270) -L1+2*sind(300) -L1+2*sind(315) -L1+2*sind(330) -L1 0]
line(armx1,army1)
axis equal

armx2=[0 2*cosd(120) 2*cosd(135) 2*cosd(150) 2*cosd(180) 2*cosd(210) 2*cosd(225) 2*cosd(240) 0 L2 L2+2*cosd(300) L2+2*cosd(315) L2+2*cosd(330) L2+2*cosd(360) L2+2*cosd(30) L2+2*cosd(45) L2+2*cosd(60) L2 0]
army2=-L1+[2 2*sind(120) 2*sind(135) 2*sind(150) 2*sind(180) 2*sind(210) 2*sind(225) 2*sind(240) -2 -2 2*sind(300) 2*sind(315) 2*sind(330) 2*sind(360) 2*sind(30) 2*sind(45) 2*sind(60) 2 2]
line(armx2,army2)
axis equal

palmx=L1+[0 0 L3 L3 0 0]
palmy=-L1+[0 2 2 -2 -2 0]
line(palmx,palmy)
axis equal

clf

x1=armx1*cosd(90-theta1)-army1*sind(90-theta1);
y1=armx1*sind(90-theta1)+army1*cosd(90-theta1);
line(x1,y1)
theta2=180-(theta2-theta1);
x2=armx2*cosd(-theta2)-army2*sind(-theta2)-L1*sind(theta1-90);
y2=armx2*sind(-theta2)+army2*cosd(-theta2)-L1*cosd(theta1-90);
line(x2,y2)
theta3=theta3-theta2-180
x3=palmx*cosd(theta3)-palmy*sind(theta3) -L1*sind(theta1-90)+L2*cosd(theta2);
y3=palmx*sind(theta3)+palmy*cosd(theta3) -L1*cosd(theta1-90)-L2*sind(theta2);
line(x3,y3)


5-1-4
L1=8
L2=6
L3=4
armx1=[2 2*cosd(30) 2*cosd(45) 2*cosd(60) 2*cosd(90) 2*cosd(120) 2*cosd(135) 2*cosd(150) -2 -2 2*cosd(210) 2*cosd(225) 2*cosd(240) 2*cosd(270) 2*cosd(300) 2*cosd(315) 2*cosd(330) 2 2]
army1=-L1+[0 2*sind(30) 2*sind(45) 2*sind(60) 2*sind(90) 2*sind(120) 2*sind(135) 2*sind(150) 0 L1 L1+2*sind(210) L1+2*sind(225) L1+2*sind(240) L1+2*sind(270) L1+2*sind(300) L1+2*sind(315) L1+2*sind(330) L1 0]
line(armx1,army1)
axis equal
armx2=[0 2*cosd(120) 2*cosd(135) 2*cosd(150) 2*cosd(180) 2*cosd(210) 2*cosd(225) 2*cosd(240) 0 6 6+2*cosd(300) 6+2*cosd(315) 6+2*cosd(330) 6+2*cosd(360) 6+2*cosd(30) 6+2*cosd(45) 6+2*cosd(60) 6 0]
army2=[2 2*sind(120) 2*sind(135) 2*sind(150) 2*sind(180) 2*sind(210) 2*sind(225) 2*sind(240) -2 -2 2*sind(300) 2*sind(315) 2*sind(330) 2*sind(360) 2*sind(30) 2*sind(45) 2*sind(60) 2 2]
line(armx2,army2)
axis equal
palmx=[0 0 4 4 0 0]
palmy=[0 2 2 -2 -2 0]
line(palmx,palmy)
axis equal

L1=30
L2=25
L3=8
arm1x=[0 (-4)*sind(30) (-4)*sind(45) (-4)*sind(60) -4 -5 -5*cosd(30) -5*cosd(45) -5*cosd(60) 0 5*cosd(60) 5*cosd(45) 5*cosd(30) 5 4 4*cosd(30) 4*cosd(45) 4*cosd(60) 0]
arm1y=-L1+[ -4 -4*cosd(30) -4*cosd(45) -4*cosd(60) 0 L1 5*sind(30)+L1 5*sind(45)+L1 5*sind(60)+L1 L1+5 5*sind(60)+L1 5*sind(45)+L1 5*sind(30)+L1 L1 0 -4*sind(30) -4*sind(45) -4*sind(60) -4]
line(arm1x,arm1y);
axis equal

arm2x=[ -4 4*cosd(150) 4*cosd(135) 4*cosd(120) 0 L2 L2+3*cosd(60) L2+3*cosd(45) L2+3*cosd(30) L2+3 L2+3*cosd(30) L2+3*cosd(45) L2+3*cosd(60) L2 0 (-4)*sind(30) (-4)*sind(45) (-4)*sind(60) -4]
arm2y=[ 0 4*sind(150) 4*sind(135) 4*sind(120) 4 3 3*sind(60) 3*sind(45) 3*sind(30) 0 -3*sind(30) -3*sind(45) -3*sind(60) -3 -4 -4*cosd(30) -4*cosd(45) -4*cosd(60) 0]
line(arm2x,arm2y);
axis equal

palmx=[ -3 3*cosd(150) 3*cosd(135) 3*cosd(120) 0 L3 L3+5*cosd(60) L3+5*cosd(45) L3+5*cosd(30) L3+5 L3+5*cosd(30) L3+5*cosd(45) L3+5*cosd(60) L3 0 (-3)*sind(30) (-3)*sind(45) (-3)*sind(60) -3]
palmy=[ 0 3*sind(150) 3*sind(135) 3*sind(120) 3 5 5*sind(60) 5*sind(45) 5*sind(30) 0 -5*sind(30) -5*sind(45) -5*sind(60) -5 -3 -3*cosd(30) -3*cosd(45) -3*cosd(60) 0]
line(palmx,palmy);
axis equal


clf

theta1=linspace(-90,-75,10)
theta2=linspace(-45,-35,10)
theta3=linspace(-30,-10,10)
axis equal
for n=1:10;

AXIS([-10 40 -20 40]);
axis equal
x1=arm1x*cosd(90-theta1(n))-arm1y*sind(90-theta1(n));
y1=arm1x*sind(90-theta1(n))+arm1y*cosd(90-theta1(n));
line(x1,y1)
theta2(n)=180-(theta2(n)-theta1(n));
x2=arm2x*cosd(-theta2(n))-arm2y*sind(-theta2(n))-L1*sind(theta1(n)-90);
y2=arm2x*sind(-theta2(n))+arm2y*cosd(-theta2(n))-L1*cosd(theta1(n)-90);
line(x2,y2)
theta3(n)=theta3(n)-theta2(n)-180
x3=palmx*cosd(theta3(n))-palmy*sind(theta3(n)) -L1*sind(theta1(n)-90)+L2*cosd(theta2(n));
y3=palmx*sind(theta3(n))+palmy*cosd(theta3(n)) -L1*cosd(theta1(n)-90)-L2*sind(theta2(n));
line(x3,y3)
axis equal

pause(0.5)
clf
end


5-2-1
L1=10
L2=8
L3=7

linkshape([0,0],[-L1,0])
linkshape([-L1,0],[-L1-L2,0])
linkshape([-L1-L2,0],[-L1-L2-L3,0])
theta1=linspace(0,90,8)
theta2=linspace(0,90,8)
theta3=linspace(0,90,8)
for n=1:8
axis equal
AXIS([-5 30 -10 20]);

x1=-L1*cosd(theta1(n))
y1=L1*sind(theta1(n))
linkshape([0,0],[x1,y1])
theta2(n)=theta1(n)+theta2(n)
x2=x1-L2*cosd(theta2(n))
y2=y1+L2*sind(theta2(n))

linkshape([x1,y1],[x2,y2])

theta3(n)=theta2(n)+theta3(n)
x3=x2-L3*cosd(theta3(n))
y3=y2+L3*sind(theta3(n))
linkshape([x2,y2],[x3,y3])
axis equal
pause(0.3)
clf
end

沒有留言: