主要内容

hgtransform

创建转换对象

语法

H = hgtransform
H = hgtransform('PropertyName, propertyvalue…)
H = hgtransform(ax,…)

属性

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

描述

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

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

H = hgtransform(ax,…)创建变换所指定的坐标轴中的斧头而不是在当前的坐标轴(gca).的选项斧头可以放在前面语法中任何输入参数组合的前面。

变换对象可以包含其他对象,这使您可以处理变换对象及其子对象作为一个单独的实体,就可见性、大小、方向等而言。您可以通过将对象养育为单个对象来对它们进行分组变换对象(例如,设置对象的转换对象的句柄):

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

父母养育子女的主要好处是反对家庭教育变换对象是你可以执行的转换(例如,平移、缩放、旋转等)。

的父母变换对象要么是对象或其他对象变换对象。

虽然你看不到变换对象,设置其可见财产使所有的子结点都不可见。

例外和限制

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

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

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

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

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

请注意

许多绘图函数在绘制图形之前清除坐标轴(删除坐标轴子轴)。清除坐标轴也会删除任何坐标轴变换坐标轴上的对象。

例子

全部折叠

这个例子展示了如何用一组表面对象父对象创建一个3d星形。然后变换对象围绕z轴旋转对象,同时缩放其大小。

创建一个坐标轴并调整视图。设置坐标轴限制,以防止缩放过程中自动选择限制。

Ax = axes(“XLim”(-1.5 - 1.5),“YLim”(-1.5 - 1.5),“ZLim”[-1.5 - 1.5]);(3)网格视图

创建您想要作为转换对象父对象的对象。

[x,y,z] =圆柱体([.]2 0]);H(1) =曲面(x,y,z,“FaceColor”“红色”);H(2) =曲面(x,y,-z,“FaceColor”“绿色”);H(3) =曲面(z,x,y,“FaceColor”“蓝”);H(4) =曲面(-z,x,y,“FaceColor”“青色”);H(5) =曲面(y,z,x,“FaceColor”“红色”);H(6) =曲面(y,-z,x,“FaceColor”“黄色”);

创建一个transform对象,并将表面对象的父对象指向它。将旋转和缩放矩阵初始化为单位矩阵(eye)。

T = hgtransform(“父”、ax);集(h,“父”,t) Rz =眼(4);Sxy = Rz;

形成了z-轴旋转矩阵和缩放矩阵。的值来旋转组和缩放r

R = 1:.1:2*pi% z轴旋转矩阵Rz = makegtform (“zrotate”, r);%比例矩阵Sxy = makegtform (“规模”, r / 4);连接转换和%设置变换矩阵属性集(t)“矩阵”, Rz * drawnow Sxy)结束暂停(1)

使用单位矩阵重置到原始的方向和大小。

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

此示例创建了两个转换对象,以演示如何在相同的轴中独立地进行转换。平移转换将一个转换对象移离原点。

创建并设置axis对象,它将是两个转换对象的父对象。设置限制以适应已翻译的对象。

Ax = axes(“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) =曲面(z,x,y,“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*pi%形成z轴旋转矩阵Rz = makegtform (“zrotate”, r);为两个转换对象设置转换集(t1,“矩阵”Rz)组(t2,“矩阵”drawnow Txy *发票(Rz))结束

另请参阅

|

R2006a之前介绍过