文章同时发布于: 王鹏飞的个人网站。
3D图形学中的矩阵变换
从这个月开始,我打算系统的去学习计算机图形学的知识了,一方面是因为兴趣,另一方面是之前自己也写过一些二维图形相关的程序,有一些数学的基础。图形学在软件开发中的地位很高,市面上所有的建模软件都与图形学相关,即使是photoshop这种设计软件也会涉及图形学的知识。而现在由于webgl的发展,未来图形软件在浏览器的比重也会越来越大。
废话不多说了,直接进入正题。本篇文章主要是为了证明图形学中的几种变换矩阵。首先要知道到学习图形学肯定要与向量、矩阵打交道。如果对线性代数不熟,可以先系统的学习下线性代数,要看懂本篇文章,至少你要有矩阵和向量的基础,会矩阵的数乘和乘法。
一. 点和向量
这部分我先简单的介绍下点和向量等基础概念。
平面中任意一个点可以用一个二元数列表示,在笛卡尔坐标系中(0, 0)点表示原点,(1, 1)表示原点往x轴方向移动1步,往y轴方向移动1步得到的点,而向量就形象的表示了这一过程,(0, 0)至(1, 1)点的向量就是(1 - 0, 1 - 0),即(1, 1)。向量是一个表示方向和大小的概念,在物理中可以用来表示力和速度。在三维中,点和向量用三元数列表示(x, y, z),任意一组xyz值可以唯一确定一个点和一个向量。
二. 变换矩阵
在图形学中,在做平移,旋转和缩放时,经常会用到矩阵,有缩放矩阵、平移矩阵和旋转矩阵。在三维空间中,变换矩阵都是一个四维矩阵,每一行分别表示x, y, z, w。为什么是四维的而不是三维的呢?请继续往下阅读。

本文深入探讨3D图形学中的矩阵变换,包括缩放、平移和旋转矩阵。作者通过数学证明解释了这些基本变换,并详细介绍了如何进行矩阵乘法以实现这些变换。此外,还讨论了为什么在三维空间中需要使用四维矩阵,以及如何通过一系列变换实现绕任意轴的旋转。文章适合有一定线性代数基础的读者,旨在帮助理解图形学中的核心概念。
最低0.47元/天 解锁文章
1325





