主要内容

矩阵旋转和变换

此示例显示如何使用符号数学工具箱™和矩阵在3D中进行旋转和转换。

定义和绘制参数表面

定义参数表面x(u,v)y(u,v)z(u,v)如下。

Syms.V.x = cos(u)* sin(v);y = sin(u)* sin(v);z = cos(v)* sin(v);

使用表面绘制FSURF.

Fsurf(x,y,z)轴平等的

创建旋转矩阵

创建3×3矩阵RX.ry., 和RZ.以角度表示平面旋转T.有关X- ,y-, 和Z.分别。

Syms.T.rx = [1 0 0;0 cos(t)-sin(t);0 sin(t)cos(t)]
rx =

1 0. 0. 0. COS. T. - T. 0. T. COS. T. [SYM(1),SYM(0),SYM(0);SYM(0),COS(T),-SIN(T);SYM(0),SIN(T),COS(T)]

ry = [cos(t)0 sin(t);0 1 0;-sin(t)0 cos(t)]
ry =

COS. T. 0. T. 0. 1 0. - T. 0. COS. T. [cos(t),sym(0),sin(t);SYM(0),SYM(1),SYM(0);-sin(t),sym(0),cos(t)]

Rz = [cos(t)-sin(t)0;sin(t)cos(t)0;0 0 1]
Rz =

COS. T. - T. 0. T. COS. T. 0. 0. 0. 1 [cos(t),-sin(t),sym(0);SIN(T),COS(T),SYM(0);sym(0),sym(0),sym(1)]

在三维中约为每个轴旋转

首先,旋转表面围绕X-AXIS逆时针45度。

xyzrx = rx * [x; y; z];RX45 =潜艇(XYZRX,T,PI / 4);FSURF(RX45(1),RX45(2),RX45(3))标题('旋转\ PI / 4关于X,逆时针')轴平等的

旋转Z.-axis顺时针90度。

XYZRZ = RZ * RX45;RX45RZ90 =潜艇(XYZRZ,T,-PI / 2);FSURF(RX45RZ90(1),RX45RZ90(2),RX45RZ90(3))标题('通过\ pi / 2旋转约z,顺时针')轴平等的

旋转y-axis顺时针45度。

XYZRY = RY * RX45RZ90;rx45rz90ry45 = summ(xyzry,t,-pi / 4);FSURF(RX45RZ90RY45(1),RX45RZ90ry45(2),RX45RZ90ry45(3))标题('旋转\ pi / 4关于y,顺时针')轴平等的

缩放和旋转

沿着因子3缩放表面Z.-轴。您可以将表达式乘以Z.到3,z = 3 * z。更通用的方法是创建一个缩放矩阵,然后通过坐标的向量乘以缩放矩阵。

s = [1 0 0;0 1 0;0 0 3];xyzscaled = s * [x;y;Z]
XYZSCALED =

COS. V. V. 3. COS. V. V. [cos(u)* sin(v);罪(U)*罪(v);3 * cos(v)* sin(v)]

FSURF(XYZSCALED(1),XYZSCALED(2),XYZSCALED(3))标题('沿z'缩放3')轴平等的

旋转缩放的表面X- ,y-, 和Z.- 顺时针,顺时针45度Z., 然后y, 然后X。用于该变换的旋转矩阵如下。

r = rx * ry * rz
r =

COS. T. 2 - COS. T. T. T. σ. 1 COS. T. 2 - T. 3. - COS. T. T. T. 2 - COS. T. 2 T. σ. 1 COS. T. 2 在哪里 σ. 1 = COS. T. T. 2 + COS. T. T. [cos(t)^ 2,-cos(t)* sin(t),sin(t);cos(t)* sin(t)^ 2 + cos(t)* sin(t),cos(t)^ 2 - sin(t)^ 3,-cos(t)* sin(t);Sin(t)^ 2 - cos(t)^ 2 * sin(t),cos(t)* sin(t)^ 2 + cos(t)* sin(t),cos(t)^ 2]

使用旋转矩阵找到新坐标。

XYZSCALEDORated = R * XYZSCALED;XYZSR45 =潜艇(XYZSCALEDORated,T,-PI / 4);

绘制表面。

FSURF(XYZSR45(1),XYZSR45(2),XYZSR45(3))标题('旋转\ pi / 4约x,y和z,顺时针')轴平等的

检查旋转矩阵的属性R.

旋转矩阵是正交矩阵。因此,转置R.也是它的逆,和决定因素R.是1。

简化(r。'* r)
ans =.

1 0. 0. 0. 1 0. 0. 0. 1 [SYM(1),SYM(0),SYM(0);SYM(0),SYM(1),SYM(0);sym(0),sym(0),sym(1)]

简化(det(r))
ans =.
                 
                  
                   
                    
                     1
                   
                   
                    符号(1)