Г) Последовательно 1 оборот вокруг оси z ,затем один оборот вокруг оси y и, наконец, один оборот вокруг оси X.
p(:,:,1)=[1 1 1 1 1;1 -1 -1 1 1; -1 -1 1 1 -1];
p(:,:,2)=[-1 1 1 -1 -1; 1 1 1 1 1; -1 -1 1 1 -1];
p(:,:,3)=[-1 -1 -1 -1 -1; 1 -1 -1 1 1; -1 -1 1 1 -1];
p(:,:,4)=[-1 1 1 -1 -1; -1 -1 -1 -1 -1; -1 -1 1 1 -1];
p(:,:,5)=[-1 1 1 -1 -1; 1 1 -1 -1 1; 1 1 1 1 1];
p(:,:,6)=[-1 1 1 -1 -1; 1 1 -1 -1 1; -1 -1 -1 -1 -1];
a=0; b=0; c=0;
axis ([-1.2 1.2 -1.2 1.2])
while (c < 2*pi)
c=c+pi/180;
Rx=[1,0,0; 0,cos(a),-sin(a); 0,sin(a),cos(a)];
Ry=[cos(b),0,sin(b); 0,1,0; -sin(b),0,cos(b)];
Rz=[cos(c),-sin(c),0 ;sin(c),cos(c),0; 0,0,1];
p(:,:,7)=Rx*Ry*Rz*p(:,:,1); p(:,:,8)=Rx*Ry*Rz*p(:,:,2);
p(:,:,9)=Rx*Ry*Rz*p(:,:,3); p(:,:,10)=Rx*Ry*Rz*p(:,:,4);
p(:,:,11)=Rx*Ry*Rz*p(:,:,5); p(:,:,12)=Rx*Ry*Rz*p(:,:,6);
fill3(p(1,:,7),p(2,:,7),p(3,:,7),'r',p(1,:,8),p(2,:,8),p(3,:,8),'g',p(1,:,9),p(2,:,9),p(3,:,9),'b',p(1,:,10),p(2,:,10),p(3,:,10),'y',p(1,:,11),p(2,:,11),p(3,:,11),'c',p(1,:,12),p(2,:,12),p(3,:,12),'m','Erasemode','normal');
grid on; axis equal; axis ([-1.8 1.8 -1.8 1.8]);
xlabel(b)
ylabel(a)
if (c<pi/4)
zlabel(c,'Color','k')
elseif (c>pi/4) & (c<pi/2)
zlabel(c,'Color','b')
elseif (c>pi/2) & (c<3*pi/4)
zlabel(c,'Color','c')
elseif (c>3*pi/4) & (c<pi)
zlabel(c,'Color','y')
elseif (c>pi) & (c<5*pi/4)
zlabel(c,'Color','m')
elseif (c>5*pi/4) & (c<3*pi/2)
zlabel(c,'Color','r')
elseif (c>3*pi/2) & (c<7*pi/4)
zlabel(c,'Color','g')
elseif (c>7*pi/4) & (c<2*pi)
zlabel(c,'Color','k')
end
pause (0.0001);
end
axis ([-1.2 1.2 -1.2 1.2])
while (a < 2*pi)
a=a+pi/180;
Rx=[1,0,0; 0,cos(a),-sin(a); 0,sin(a),cos(a)];
Ry=[cos(b),0,sin(b); 0,1,0; -sin(b),0,cos(b)];
Rz=[cos(c),-sin(c),0 ;sin(c),cos(c),0; 0,0,1];
p(:,:,7)=Rx*Ry*Rz*p(:,:,1); p(:,:,8)=Rx*Ry*Rz*p(:,:,2);
p(:,:,9)=Rx*Ry*Rz*p(:,:,3); p(:,:,10)=Rx*Ry*Rz*p(:,:,4);
p(:,:,11)=Rx*Ry*Rz*p(:,:,5); p(:,:,12)=Rx*Ry*Rz*p(:,:,6);
fill3(p(1,:,7),p(2,:,7),p(3,:,7),'r',p(1,:,8),p(2,:,8),p(3,:,8),'g',p(1,:,9),p(2,:,9),p(3,:,9),'b',p(1,:,10),p(2,:,10),p(3,:,10),'y',p(1,:,11),p(2,:,11),p(3,:,11),'c',p(1,:,12),p(2,:,12),p(3,:,12),'m','Erasemode','normal');
grid on; axis equal; axis ([-1.8 1.8 -1.8 1.8]);
xlabel(b)
if (a<pi/4)
ylabel(a,'Color','k')
elseif (a>pi/4) & (a<pi/2)
ylabel(a,'Color','b')
elseif (a>pi/2) & (a<3*pi/4)
ylabel(a,'Color','c')
elseif (a>3*pi/4) & (a<pi)
ylabel(a,'Color','y')
elseif (a>pi) & (a<5*pi/4)
ylabel(a,'Color','m')
elseif (a>5*pi/4) & (a<3*pi/2)
ylabel(a,'Color','r')
elseif (a>3*pi/2) & (a<7*pi/4)
ylabel(a,'Color','g')
elseif (a>7*pi/4) & (a<2*pi)
ylabel(a,'Color','k')
end
zlabel(c)
pause (0.001);
end
b=0
axis ([-1.2 1.2 -1.2 1.2])
while (b < 2*pi)
b=b+pi/180;
Rx=[1,0,0; 0,cos(a),-sin(a); 0,sin(a),cos(a)];
Ry=[cos(b),0,sin(b); 0,1,0; -sin(b),0,cos(b)];
Rz=[cos(c),-sin(c),0 ;sin(c),cos(c),0; 0,0,1];
p(:,:,7)=Rx*Ry*Rz*p(:,:,1); p(:,:,8)=Rx*Ry*Rz*p(:,:,2);
p(:,:,9)=Rx*Ry*Rz*p(:,:,3); p(:,:,10)=Rx*Ry*Rz*p(:,:,4);
p(:,:,11)=Rx*Ry*Rz*p(:,:,5); p(:,:,12)=Rx*Ry*Rz*p(:,:,6);
fill3(p(1,:,7),p(2,:,7),p(3,:,7),'r',p(1,:,8),p(2,:,8),p(3,:,8),'g',p(1,:,9),p(2,:,9),p(3,:,9),'b',p(1,:,10),p(2,:,10),p(3,:,10),'y',p(1,:,11),p(2,:,11),p(3,:,11),'c',p(1,:,12),p(2,:,12),p(3,:,12),'m','Erasemode','normal');
grid on; axis equal; axis ([-1.8 1.8 -1.8 1.8]);
if (b<pi/4)
xlabel(b,'Color','k')
elseif (b>pi/4) & (b<pi/2)
xlabel(b,'Color','b')
elseif (b>pi/2) & (b<3*pi/4)
xlabel(b,'Color','c')
elseif (b>3*pi/4) & (b<pi)
xlabel(b,'Color','y')
elseif (b>pi) & (b<5*pi/4)
xlabel(b,'Color','m')
elseif (b>5*pi/4) & (b<3*pi/2)
xlabel(b,'Color','r')
elseif (b>3*pi/2) & (b<7*pi/4)
xlabel(b,'Color','g')
elseif (b>7*pi/4) & (b<2*pi)
xlabel(b,'Color','k')
end
ylabel(a)
zlabel(c)
pause (0.001);
end
Вывод:
Система MatLab позволяет создавать сценарии для написания и редактирования программ без многократно перезаписывания таковых. Позволяет создавать циклы с помощью операторов for и while; использовать структуры выбора, такие как if, if else, if elseif else, swith case end без которых многие задачи компьютерной математики и программирования были бы неразрешимы.