方块的旋转

%方块的旋转
clear,x0=[1,-1,-1,1];y0=[1,1,-1,-1];
figure,h=fill(x0,y0,'y');
grid on,axis equal,axis([-2,2,-2,2])
fs=16;title('方块的旋转','FontSize',fs)
xlabel('\itx','FontSize',fs),ylabel('\ity','FontSize',fs)
ht=text(x0,y0,['A';'B';'C';'D'],'FontSize',fs);
pause,th=0;hold on
while 1
    if get(gcf,'CurrentCharacter')==char(27),break,end
    th=th+pi/180;
    R=[cos(th),-sin(th);sin(th),cos(th)];
    XY=R*[x0;y0];
    x=XY(1,:);y=XY(2,:);
    set(h,'XData',x,'YData',y)
    set(ht(1),'Position',[x(1),y(1)])
    set(ht(2),'Position',[x(2),y(2)])
     set(ht(3),'Position',[x(3),y(3)])
      set(ht(4),'Position',[x(4),y(4)])
      drawnow  %刷新屏幕

end


命令 set
功能 设置对象的属性。
用法 set(H,'PropertyName',PropertyValue,…) 用属性值'PropertyValue'设置关于用参量H
标志的对象(一个或多个)的属性名'PropertyName'(一个或多个)。H 可以
为一句柄的向量。在这种情形下,命令set 可以设置所有对象的属性值。
set(H,a) 用指定的属性值设置由H 标志的对象的属性。其中a 为一结构数组,该
结构数组的域名为对象的属性名,域名值为相应属性名的属性值。
set(H,pn,pv…) 对由H 指定的所有对象中指定的细胞数组属性名pn 设置为相应
的细胞数组属性值pv。
set(H,pn,<m-by-n cell array>) 对于每m 个图形对象设置n 个属性值,其中
m=length(H),n 为包含属性名的细胞数组pn 中包含的属性名个数。即允许
用户对每一对象的指定的属性设置不同的属性值。
a= set(h) 返回句柄h 中允许用户设置的属性名与可能的属性值。输出参量a 为一
结构数组,其域名为对象的属性名,域名值为相应的属性名对应的属性值。
若没有指定输出参量a,则系统自动将信息显示于屏幕,h 必须为标量。
a= set(0,'Factory') 返回那些用户可以设置缺省值的所有对象的属性名,同时显示
可能的属性值,输出参量a 为一结构数组,其域名为对象的属性名,域名值
为相应的属性名对应的属性值,若没有指定输出参量a,则系统自动将信息
显示于屏幕。
a= set(0,'FactoryObjectTypePropertyName')返回指定根对象(0)类型中指定的属性
名ObjectTypePropertyName 的所有可能的属性值。输入参量是由固定的关键
字Factory、对象类型(如axes)与属性名(如position 等)组成。
a= set(h,'Default') 返回由h 标记的对象上缺省设置的值,其中h 必须是标量。
a= set(h,'DefaultObjectTypePropertyName') 返回指定对象h 的类型中指定的属性
名ObjectTypePropertyName 的所有可能的属性值。输入参量是由固定的关键
字Factory、对象类型(如axes)与属性名(如position 等)组成。



drawnow

用于刷新屏幕。当代码执行时间长,需要反复执行plot时,Matlab程序不会马上把图像画到figure上,这时,要想实时看到图像的每一步变化情况,需要使用这个语句。

你可能感兴趣的:(方块的旋转)