绘制一个正方形
在软件中键入以下程序: %绕任意轴旋转,本例中旋转中心坐标点为(1,1) clear clc x=[0 2 2 0 0]; y=[0 0 2 2 0]; plot(x,y,'r'); hold on axis equal axis([-1 3 -1 3]) 此段代码将绘制出2×2的红色正方形,如图所示
移动旋转中心至坐标原点
%首先,将图形旋转中心移动至坐标原点,M为移动矩阵,其中两个-1是旧坐标系坐标原点在新坐标系下的表示 M=[1 0 -1; 0 1 -1; 0 0 1;]; R(1,:)=x; R(2,:)=y; R(3,:)=1;%将二维坐标表示成(x,y,1)的形式 R1=M*R; plot(R1(1,:),R1(2,:),'g') 移动结果为绿色正方形,如图所示
旋转图形
%然后,旋转该图形 M1=[cos(pi/6) sin(pi/6) 0; -sin(pi/6) cos(pi/6) 0; 0 0 1]; R2=M1*R1; plot(R2(1,:),R2(2,:),'b') 旋转结果为蓝色正方形,如图所示
将旋转中心移动至原来位置
%最后,将旋转中心移动至原来位置 R3=inv(M)*R2;%M的逆矩阵 plot(R3(1,:),R3(2,:),'k') 最终结果为黑色正方形,如图所示