2011年6月18日星期六

MATLAB随笔——图形的旋转放缩

使用MATLAB可以对图形进行旋转和放缩,这一切都是依赖这样一个矩阵
A=[ cos(alfa),-sin(alfa);
sin(alfa),+cos(alfa)];
view raw 2011061701.m hosted with ❤ by GitHub

以下是示例代码,作用是绘制一个等边三角形,并不断迭代旋转缩小:
beta=[3/6;7/6;11/6;15/6]*pi;
x=cos(beta);y=sin(beta);
figure(4),
line(x,y)
xy=[x,y];
alfa=pi/50;
A=[ cos(alfa),-sin(alfa);
sin(alfa),cos(alfa)];
for k=1:33
xy=0.9*xy*A;
x=xy(:,1);y=xy(:,2);
line(x,y)
end
view raw 2011061702.m hosted with ❤ by GitHub

所得结果如下:


如果需要逆时针旋转,只需使用A的逆矩阵A^(-1)即可。

没有评论:

发表评论