主要内容

HG变换

创建变换对象

语法

h=HG变换
h=Hg(毫米)属性名',属性值,…)
h=Hg变换(ax,…)

属性

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

说明

h=HG变换创建变换对象并返回其句柄。

h=Hg(毫米)属性名',属性值,…)创建变换具有参数列表中指定的属性值设置的对象。有关属性的说明,请参见变换属性.

h=Hg变换(ax,…)创建变换指定轴上的对象斧头而不是在当前轴中(一般合作协议). 选择斧头可以在前面的语法中的任何输入参数组合之前。

变换对象可以包含其他对象,这允许您处理变换对象及其子对象在可见性、大小、方向等方面作为单个实体。可以通过将对象与单个实体建立父子关系来对其进行分组变换对象(即设置对象的起源属性(转换对象的句柄):

h=Hg变换;表面('母体',h,…)

将对象作为父对象的主要优势变换对象是您可以执行的变换(例如,平移、缩放、旋转等)。

父母变换对象是轴线对象或其他对象变换对象。

虽然你看不到变换对象,设置其可见属性到使所有的孩子也看不见。

例外和限制

  • A.变换对象可以是属于同一轴的任意多个轴的子对象的父对象,灯光对象除外。

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

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

  • 你不能改变图像对象,因为图像不是真实的三维对象。纹理将图像数据映射到曲面CData酒店使您能够产生在三维空间中变换图像的效果。

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

注意

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

示例

全部折叠

此示例演示如何创建一个三维星形,其中一组曲面对象是单个变换对象的父对象。然后,变换对象围绕z轴旋转对象,同时缩放其大小。

创建轴并调整视图。设置轴限制以防止缩放期间自动限制选择。

ax=轴('XLim',[-1.5 1.5],'伊林',[-1.5 1.5],'兹利姆',[-1.5 1.5]); 视图(3)网格

创建要作为变换对象父对象的对象。

[x,y,z]=圆柱体([2 0]);h(1)=表面(x,y,z,'面颜色',“红色”); h(2)=表面(x,y,-z,'面颜色','绿色'); h(3)=表面(z,x,y,'面颜色','蓝色'); h(4)=表面(-z,x,y,'面颜色','青色'); h(5)=表面(y,z,x,'面颜色','洋红色'); h(6)=表面(y,-z,x,'面颜色','黄色');

创建变换对象并将曲面对象作为其父对象。将旋转和缩放矩阵初始化为单位矩阵(眼睛)。

t=HG变换('父级',轴);设置(h,'父级',t)Rz=眼睛(4);Sxy=Rz;

形成Z-轴旋转矩阵和缩放矩阵。使用增加的值旋转组和缩放R.

对于r=1:.1:2*pi%Z轴旋转矩阵Rz=制作模板('Z旋转',r);%比例矩阵Sxy=制作模板('缩放',r/4);%连接变换和%设置变换矩阵属性设置(t,'矩阵',Rz*Sxy)立即提取结束暂停(1)

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

设置(t,'矩阵',眼睛(4))

此示例创建两个变换对象,以说明如何在同一轴内独立变换每个对象。平移将一个变换对象移离原点。

创建并设置将作为两个变换对象的父对象的轴对象。设置限制以适应转换的对象。

ax=轴('XLim',[-3 1],'伊林',[-3 1],'兹利姆',[-1 1]); 视图(3)网格

创建要分组的曲面对象。

[x,y,z]=圆柱体([3 0]);h(1)=表面(x,y,z,'面颜色',“红色”); h(2)=表面(x,y,-z,'面颜色','绿色'); h(3)=表面(z,x,y,'面颜色','蓝色'); h(4)=表面(-z,x,y,'面颜色','青色'); h(5)=表面(y,z,x,'面颜色','洋红色'); h(6)=表面(y,-z,x,'面颜色','黄色');

创建变换对象并将它们设置为相同轴的父对象。然后,为要变换t1的曲面设置父对象。复制曲面对象并将副本设置为变换t2的父对象。这个数字不应该改变。

t1=HG变换('父级',轴);t2=HG变换('父级',轴);设置(h,'父级',t1)h2=复制对象(h,t2);

将第二个变换对象从第一个变换对象移开并显示结果。

Txy=制作模板('翻译',[-1.5 -1.5 0]); 设置(t2,'矩阵',Txy)现在开始

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

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

对于r=1:.1:20*pi%形成z轴旋转矩阵Rz=制作模板('Z旋转',r);%为两个变换对象设置变换设置(t1,'矩阵',Rz)设置(t2,'矩阵',Txy*inv(Rz))现在结束

另请参见

|

R2006a之前引入