图形块

绘图时,常见的一种情况是,一个部件由几个或几十个基本的图形单元组成。处理时,一般将这些图形单元作为一个图形块一起进行处理,例如,一起平移、旋转,一起被选取等。

在MATLAB中创建图形块很简单,创建一个图形块就是创建一个hggroup对象,然后把组成图形块的各个图形单元作为该hggroup对象的子对象。

利用hggroup函数创建hggroup对象,该函数的调用格式为:

code.matlab
h=hggroup
h=hggroup(...,'PropertyName',propertyvalue)

hggroup对象是任何坐标系子对象和其他hggroup对象的父对象。

下面的代码创建一个圆角矩形和一个圆,其父对象是同一个hggroup对象。即用该圆角矩形和圆组成一个图形块进行处理。对该图形块进行平移和缩小变换。

code.matlab
>> hg=hggroup;
>> rec=rectangle('Position',[3,7,20,8], 'Curvature',[.3 .4], 'FaceColor', 'g', 'Parent',hg);
>> cir=rectangle('Position',[8,15,10,10], 'Curvature',[1 1], 'LineWidth',3, 'FaceColor', 'r', 'Parent',hg);
>> axis([0 25 0 25]);
>> axis equal
>> box on

生成图2-32。

下面对圆和圆角矩形进行平移和缩小变换,因为上面已经将它们绑定到组对象hg中,直接针对该组对象进行操作即可。

code.matlab
>> t=hgtransform;
>> set(hg, 'Parent',t)
>> Tz=makehgtform('translate',1,2,0);
>> Sxy=makehgtform('scale',0.5);
>> set(t, 'matrix', Sxy*Tz)

生成图2-33。

Document Image Document Image
\[\]

图2-32 生成图形并组合成图形块 图2-33 平移和缩小图形块