如何用Matlab对二维图形绕任意点进行旋转
1、在软件中键入以下程序:
%绕任意轴旋转,本例中旋转中心坐标点为(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的红色正方形,如图所示


1、%首先,将图形旋转中心移动至坐标原点,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')
移动结果为绿色正方形,如图所示


1、%然后,旋转该图形
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')
旋转结果为蓝色正方形,如图所示


1、%最后,将旋转中心移动至原来位置
R3=inv(M)*R2;%M的逆矩阵
plot(R3(1,:),R3(2,:),'k')
最终结果为黑色正方形,如图所示


声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:110
阅读量:34
阅读量:79
阅读量:42
阅读量:24