主要内容

hgtransform

创建变换对象

语法

h = hgtransform
h = hgtransform ('PropertyName, propertyvalue…)
h = hgtransform(ax,...)

属性

有关属性列表,请参见变换属性

描述

h = hgtransform创建一个转变对象并返回其句柄。

h = hgtransform ('PropertyName, propertyvalue…)创建一个转变对象使用参数列表中指定的属性值设置。有关属性的描述,请参阅变换属性

h = hgtransform(ax,...)创建转变由此指定的轴中的物体斧头而不是当前轴(gca).的选项斧头可以在先前语法中之前在任何输入参数组合之前。

转变对象可以包含其他对象,可以让您对待转变对象及其儿童作为可见性,大小,方向等的单个实体。您可以通过将它们级为单个来对象进行对象转变对象(即,设置对象的属性到Transfort对象的句柄):

h = hgtransform;面(“父”,h,…)

养育对象的主要优点是转变对象是您可以执行的转变(例如,在子对象中,在子对象上的翻译,缩放,旋转等)。

一个人的父母转变对象可以是对象或另一个转变目的。

虽然你看不到转变对象,将其可见财产离开也让它所有的孩子都看不见。

例外和限制

  • 一个转变对象可以是属于同一轴的任意数量的轴子对象的父对象,除了轻对象。

  • 转变对象永远不能是轴对象的父对象,因此只能包含来自单个轴的对象。

  • 转变对象可以是同一轴内的其他变换对象的父级。

  • 你不能改变图像物体,因为图像不是真正的三维物体。将图像数据映射到表面的纹理CData使您能够在三维空间中产生转换图像的效果。

  • 除非文本对象使用数据单元,否则变换不会影响文本对象。如果一个文本对象具有在数据单元中指定的位置,然后转换将移动文本的左下角。转换不会影响字体大小或方向。若要更改字体大小和方向,请使用文本属性。

请注意

许多绘图功能在绘制图形之前清除轴(拆下轴儿童)。清除轴也删除任何转变轴上的物体。

例子

全部折叠

此示例显示如何使用父为单个变换对象的一组曲面对象创建三维星。然后,转换对象在缩放其尺寸时旋转z轴的对象。

创建一个轴并调整视图。设置轴的限制,以防止在缩放时自动选择限制。

ax =轴('xlim',[ -  1.5 1.5],“YLim”,[ -  1.5 1.5],“ZLim”,[ -  1.5 1.5]);(3)网格视图

创建想要作为transform对象的父对象。

[x, y, z] =缸([。2 0]);h(1) =表面(x, y, z,“FaceColor”“红色”);h(2) =表面(x, y - z,“FaceColor”“绿色”);h(3) =表面(x, y, z,“FaceColor”“蓝”);h表面(4)= (- z、x, y,“FaceColor”'青色');h(5)=表面(y,z,x,“FaceColor”'品红');h(6) =表面(y - z、x,“FaceColor”“黄色”);

创建一个transform对象,并将其作为表面对象的父对象。初始化旋转和缩放矩阵到单位矩阵(眼睛)。

t = hgtransform ('父母'、ax);套(H,'父母',t)rz =眼睛(4);sxy = RZ;

形成了z-轴旋转矩阵和缩放矩阵。旋转组和缩放使用增加的值r

r = 1: .1:2 *π%z轴旋转矩阵Rz = makehgtform ('Zrotate',r);%缩放矩阵Sxy = makehgtform ('规模',r / 4);%连接变换和%设置变换矩阵属性集(t)“矩阵”, Rz * drawnow Sxy)结束暂停(1)

使用Identity矩阵重置为原始方向和大小。

集(t)“矩阵”眼睛(4))

这个例子创建了两个transform对象来演示如何在相同的坐标轴内独立地进行转换。一个平移变换将一个变换对象移离原点。

创建并设置坐标轴对象,它将是两个transform对象的父对象。设置限制以适应已翻译的对象。

ax =轴('xlim'(3 - 1),“YLim”(3 - 1),“ZLim”[1]);(3)网格视图

创建表面对象组。

[x, y, z] =缸([。3 0]);h(1) =表面(x, y, z,“FaceColor”“红色”);h(2) =表面(x, y - z,“FaceColor”“绿色”);h(3) =表面(x, y, z,“FaceColor”“蓝”);h表面(4)= (- z、x, y,“FaceColor”'青色');h(5)=表面(y,z,x,“FaceColor”'品红');h(6) =表面(y - z、x,“FaceColor”“黄色”);

创建转换对象并将其父级括到同一个轴上。然后,父曲面转换T1。复制表面对象并父副本转换T2。这个数字不应改变。

t1 = hgtransform ('父母'、ax);t2 = hgtransform ('父母'、ax);套(H,'父母',t1) h2 = copyobj(h,t2);

将第二个转换对象从第一个转换对象转换并显示结果。

Txy = makehgtform (“翻译”-1.5 - -1.5 [0]);集(t2,“矩阵”Txy) drawnow

在相反的方向旋转两个变换对象。

旋转10次(2弧度= 1旋转)

r = 1: .1:20 *π%形成z轴旋转矩阵Rz = makehgtform ('Zrotate',r);为两个转换对象设置转换设置(t1,“矩阵”,rz)设置(t2,“矩阵”drawnow Txy *发票(Rz))结束

另请参阅

|

在R2006A之前介绍