1. 程式人生 > >MATLAB--圖形旋轉、壓縮、映象、剪下

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;