主要内容

转换由hgtransf万博1manbetxorm

改变对象

改变对象的矩阵产权转换适用于所有对象的孩子。转换包括旋转、翻译、和可伸缩性。定义一个造变换矩阵的变换。

创建一个变换矩阵

makehgtform函数执行旋转矩阵的简化了施工,翻译,和可伸缩性。为创建矩阵变换使用的信息makehgtform,请参阅巢转换为复杂的动作

旋转

旋转变换遵循右手法则——旋转对象有关x- - - - - -,y,或z设在,用积极的角度旋转逆时针,照准沿着各自的轴向原点。如果转动角θ,下面的矩阵定义了一个旋转的θ轴。

创建一个绕任意轴旋转变换矩阵,使用makehgtform函数。

翻译

翻译转换移动对象对他们当前的位置。指定的翻译作为距离tx,ty,tz在数据空间单元。下面的矩阵显示了这些元素的位置的变换矩阵。

扩展

缩放变换改变对象的大小。指定规模因素年代x,年代y,年代z并构建以下矩阵。

您不能使用规模因素小于或等于零。

默认的转换

默认的变换是单位矩阵,它可以创建的眼睛函数。这是单位矩阵。

看到撤销变换操作

不允许转换:角度

视角转换改变视图对象的距离。下面的矩阵是一个透视变换矩阵的一个例子,MATLAB®图形不允许。

( 1 0 0 0 0 1 0 0 0 0 1 0 0 0 p x 0 ]

在这种情况下,px是角度的因素。

不允许转换:剪切

剪切变换把所有点沿着给定的直线(或平面,三维坐标)固定而转移所有其他点线(平面)平行固定线的垂直距离成正比(飞机)。下面的矩阵是一个剪切变换矩阵,hgtransform不允许。

( 1 年代 x 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ]

在这种情况下,年代x是剪切因子,可以代替任何零元素在一个单位矩阵。

绝对与相对变换

指定转换在绝对数量上,而不是相对于当前的变换。例如,如果你申请一个变换,将变换对象5单位x方向,然后你申请另一个翻译它4单位的变换y方向,由此产生的对象是4单位的位置y方向从原来的位置。

如果你想要转换积累,你必须连接各个变换成一个矩阵。看到结合变换成一个矩阵

结合变换成一个矩阵

通常是更高效的各种变换操作合并成一个矩阵连接(乘法)个人矩阵和设置矩阵财产的结果。矩阵乘法不交换,所以矩阵相乘的顺序影响结果。

例如,假设您想要执行一个操作尺度,翻译,然后旋转。假设R,T年代是你个人变换矩阵,用矩阵如下:

C = R * T * S%从右到左操作执行

年代是扩展矩阵,T是翻译矩阵,R是旋转矩阵,C是三个操作的组合。然后设置变换对象的矩阵财产C:

hg = hgtransform (“矩阵”C);

由单位矩阵相乘转换

下面的语句不是等价的。第一组:

hg.Matrix = C;hg.Matrix =眼(4);

结果c .第二组的变换:

我眼睛= (4);C =我* R * T * S;hg.Matrix = C;

应用变换C。连接其他矩阵的矩阵不影响复合矩阵。

撤销变换操作

因为变换操作指定在绝对数量上(不是相对于当前变换),你可以撤销的一系列转换设置当前转换单位矩阵。例如:

hg = hgtransform (“矩阵”C);hg.Matrix =眼(4);

返回包含的对象变换对象,hg应用变换之前,他们的方向C

有关单位矩阵的更多信息,请参阅眼睛函数

另请参阅

||

相关的话题