计算机图形学的核心矩阵

如下图所示的矩阵是计算机图形学的核心。它们描述的是在三维空间中运动的物体。MATLAB的Handle图形使用它们。MathWork也是新的走鹃编辑器。所有流行的视频游戏和CAD包也是如此。

内容

犹他州的茶壶

自1976年马丁·纽威尔(Martin Newell)在犹他大学(University of Utah)读研究生时推出茶壶以来,茶壶在计算机图形学的发展中发挥了重要作用。如果你知道去寻找它,你可能会在皮克斯的电影和福克斯电视的《辛普森一家》中看到它。有一个非常棒的维基百科页面还有一个有趣的展览计算机历史博物馆.茶壶的坐标可在MATLAB中使用该函数teapotGeometry.一个MATLAB实时脚本描述的阴影和照明的茶壶可以在这里

茶壶= grafix;

我感兴趣的是,面板中的矩阵。它现在是4 × 4单位矩阵。这个矩阵描述了对目标对象集合所做的所有转换。

旋转

齐次坐标使得描述4 × 4矩阵的旋转、平移和许多其他变换成为可能。矩阵作用于前三个分量中物体坐标的向量,现在是第四个分量中的一个。

这个矩阵剩下z旋转时固定坐标xy

R_z(t) = [cosd(t) -sind(t) 0 0 sind(t) cosd(t) 0 0 0 0 1]

这是一个45度的旋转z

Rz = R_z (45)
Rz = 0.7071 -0.7071 00 0.7071 0.7071 000 1.0000 0000 1.0000

将这个旋转应用到茶壶上。

应用(茶壶,Rz)

Rz * Rx

一个变换序列由所有矩阵的乘积表示。

这个正交旋转x固定在旋转yz

R_x(t) = [1 0 0 0 0 cosd(t) -sind(t) 0 0 0 0 1]

按照原来的45度z变换由60度旋转左右x

Rx = R_x(60) M = Rx*Rz;应用(茶壶,米)
Rx = 1.0000 0000 0.5000 -0.8660 00 0.8660 0.5000 0000 1.0000

顺序很重要,因为这些矩阵不能交换。这是颠倒顺序的结果。

M = Rz *处方;应用(茶壶,米)

变化中

这使得y固定在旋转xz

R_y(t) = [cosd(t) 0 -sind(t) 0 0 1 0 0 sind(t) 0 cosd(t) 0 0 0 0 1]
y = R_y(-120)
y = -0.5000 0 -0.8660 00 1.0000 00 0.8660 0 -0.5000 000 1.0000

平移和缩放

非正交矩阵来源于平移和缩放。齐次坐标和M的第四列产生平移。一个典型的翻译是

T_x(t) = [1 0 0 t 0 1 0 0 0 0 1];
Tx = T_x (2.5)
Tx = 1.0000 00 2.5000 0 1.0000 000 1.0000 000 1.0000

把茶壶沿着x轴。

应用(茶壶,Tx)

我们可以分别缩放每个坐标方向。或者,这个矩阵对所有的坐标应用一个因子。

S_xyz(t) = [t 0 0 0 0 t 0 0 0 t 0 0 0 1];
Sxyz = S_xyz (0.75)
Sxyz = 0.7500 000 0.7500 000 0.7500 000 1.0000

“亲爱的,我把茶壶缩小了。”

应用(茶壶,Sxyz)

在一起

我已经生成了五个变换,处方Rz变化中TxSxyz.以下是他们的产品,按介绍顺序排列。

M = Sxyz * Tx *一* Rz *处方;应用(茶壶,米)

下面是相反的顺序。

M = Rx * Rz * * Tx * Sxyz一块;应用(茶壶,米)

最后,一个乱码。

M = Rz *一* Sxyz * Tx *处方;应用(茶壶,米)




发布与MATLAB®R2021b

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。