MATLAB--图形旋转、压缩、镜像、剪切

%% 旋转
x=[0 1 1 0 0];
y=[0 0 1 1 0];
plot(x,y)
h=patch(x,y,'b');
h.FaceAlpha=0.5;
hold on
axis([-2 2 -2 2])
axis equal
for i=1:40   %旋转40次
    M=[cos(pi/40*i) -sin(pi/40*i);
       sin(pi/40*i) cos(pi/40*i)];
   T=M*[x;y];
  plot(T(1,:),T(2,:))
h2=patch(T(1,:),T(2,:),'r');
h2.FaceAlpha=0.1;
pause(0.2)
end


%% X轴压缩
x=[0 1 1 0 0];
y=[0 0 1 1 0];
plot(x,y)
h=patch(x,y,'b');
h.FaceAlpha=0.5;
hold on
axis([-2 2 -2 2])
axis equal
M=[0.2 0;0 1];
T=M*[x;y];
plot(T(1,:),T(2,:))
h2=patch(T(1,:),T(2,:),'r');
h2.FaceAlpha=0.1;


%% Y轴压缩/延伸
clear 
close
x=[0 1 1 0 0];
y=[0 0 1 1 0];
plot(x,y)
h=patch(x,y,'b');
h.FaceAlpha=0.5;
hold on
axis([-2 2 -2 2])
axis equal
M=[1 0;0 2];
T=M*[x;y];
plot(T(1,:),T(2,:))
h2=patch(T(1,:),T(2,:),'r');
h2.FaceAlpha=0.1;


%% X轴镜像
clear 
close
x=[0 1 1 0 0];
y=[0 0 1 1 0];
plot(x,y)
h=patch(x,y,'b');
h.FaceAlpha=0.5;
hold on
axis([-2 2 -2 2])
axis equal
M=[1 0;0 -1];
T=M*[x;y];
plot(T(1,:),T(2,:))
h2=patch(T(1,:),T(2,:),'r');
h2.FaceAlpha=0.1;


%% Y轴镜像
clear 
close
x=[0 1 1 0 0];
y=[0 0 1 1 0];
plot(x,y)
h=patch(x,y,'b');
h.FaceAlpha=0.5;
hold on
axis([-2 2 -2 2])
axis equal
M=[-1 0;0 1];
T=M*[x;y];
plot(T(1,:),T(2,:))
h2=patch(T(1,:),T(2,:),'r');
h2.FaceAlpha=0.1;


%% X轴剪切
clear 
close
x=[0 1 1 0 0];
y=[0 0 1 1 0];
plot(x,y)
h=patch(x,y,'b');
h.FaceAlpha=0.5;
hold on
axis([-2 2 -2 2])
axis equal
M=[1 0.5;0 1];
T=M*[x;y];
plot(T(1,:),T(2,:))
h2=patch(T(1,:),T(2,:),'r');
h2.FaceAlpha=0.1;


%% Y轴剪切
clear 
close
x=[0 1 1 0 0];
y=[0 0 1 1 0];
plot(x,y)
h=patch(x,y,'b');
h.FaceAlpha=0.5;
hold on
axis([-2 2 -2 2])
axis equal
M=[1 0;-0.5 1];
T=M*[x;y];
plot(T(1,:),T(2,:))
h2=patch(T(1,:),T(2,:),'r');
h2.FaceAlpha=0.1;


%% y=x轴旋转
clear 
close
x=[-1 1 0 -1];
y=[0 0 1 0];
plot(x,y)
h=patch(x,y,'b');
h.FaceAlpha=0.5;
hold on
axis([-2 2 -2 2])
M=[0 1;1 0];%延y=x这条线翻转
T=M*[x;y];
plot(T(1,:),T(2,:))
h2=patch(T(1,:),T(2,:),'r');
h2.FaceAlpha=0.1;

猜你喜欢

转载自blog.csdn.net/weixin_42107106/article/details/82926664