Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по лабораторной работе № 7.docx
Скачиваний:
1
Добавлен:
20.08.2019
Размер:
46.33 Кб
Скачать

Г) Последовательно 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 без которых многие задачи компьютерной математики и программирования были бы неразрешимы.