矩阵旋转与变换
这个例子展示了如何使用符号数学工具箱™和矩阵在3D中进行旋转和转换。
定义并绘制参数曲面
定义参数曲面x (u, v)
,y (u, v)
,z (u, v)
如下。
信谊uvX = cos(u)* sinv;Y = sin(u)* sinv;Z = cosv * sinv;
使用以下方法绘制曲面fsurf
.
fsurf轴(x, y, z)平等的
创建旋转矩阵
创建3 × 3矩阵处方
,变化中
,Rz
用角度表示平面旋转的t
关于x
-,y
- - - - - -,z
分别设在。
信谊tRx = [1 0 0;0 cost - sint;0 sint cos t]
Rx =
Ry = [cos(t) 0sint;0 10 0;- sint 0 cos t]
一=
Rz = [cos(t) -sin(t) 0;sint cost 0;0 0 1]
Rz =
在三维空间中旋转每个轴
首先,旋转表面x
-轴逆时针旋转45度。
xyzRx = Rx*[x;y;z];Rx45 = subs(xyzRx, t, pi/4);fsurf(Rx45(1), Rx45(2), Rx45(3)) title(“逆时针绕x旋转\pi/4”)轴平等的
旋转z
-轴顺时针旋转90度。
xyzRz = Rz*Rx45;Rx45Rz90 = subs(xyzRz, t, -pi/2);fsurf(Rx45Rz90(1), Rx45Rz90(2), Rx45Rz90(3)) title(“围绕z,顺时针旋转\pi/2”)轴平等的
旋转y
-轴顺时针旋转45度。
xyzRy = Ry*Rx45Rz90;Rx45Rz90Ry45 = subs(xyzRy, t, -pi/4);fsurf(Rx45Rz90Ry45(1), Rx45Rz90Ry45(2), Rx45Rz90Ry45(3)) title(“绕y,顺时针旋转\pi/4”)轴平等的
缩放和旋转
沿这条线乘以3乘以这个曲面z
设在。你可以乘以z
3,Z = 3* Z
.更通用的方法是创建一个缩放矩阵,然后将缩放矩阵乘以坐标向量。
S = [1 0 0;0 10 0;0 0 3];xyzScaled = S*[x;y;z]
xyzScaled =
fsurf(xyzScaled(1), xyzScaled(2), xyzScaled(3))'沿z方向缩放3 ')轴平等的
旋转缩放表面x
-,y
- - - - - -,z
-轴顺时针45度,按顺序z
,然后y
,然后x
.这个变换的旋转矩阵如下。
R = Rx*Ry*Rz
R =
使用旋转矩阵找到新的坐标。
xyzscaledrotate = R*xyzScaled;xyzSR45 = subs(xyzscaledrotate, t, -pi/4);
画出曲面。
fsurf(xyzSR45(1), xyzSR45(2), xyzSR45(3)) title(“绕x, y, z,顺时针旋转\pi/4”)轴平等的
检查旋转矩阵的属性R
旋转矩阵是正交矩阵。因此,转置R
也是它的逆,还有行列式R
是1。
简化(R。”* R)
ans =
简化(侦破(R))
ans =