关于java:抓住计算机编程的灵魂矩阵的应用以及图形转换

39次阅读

共计 655 个字符,预计需要花费 2 分钟才能阅读完成。

本文作者:乐字节 - 坑王老薛

二维图形的矩阵变换(一)——基本概念

根本的二维变换可包含旋转、缩放、扭曲,和平移四种,

而这些几何运算则能够转换为一些根本的矩阵运算:

这几个变换都是线性的,但平移运算不是线性的,不能通过 2 * 2 矩阵运算实现。若要将点 (2, 1) 在 x 方向将其平移 3 个单位,在 y 方向将其平移 4 个单位。可通过先应用矩阵乘法再应用矩阵加法来实现此操作。

综合这几种根本运算,数学家们将其对立为一个 3 * 3 矩阵,存储模式如下:

因为示意仿射变换的矩阵的第三列总是(0,0,1),在存储矩阵的时候,大多只存成一个 2 * 3 的数组。

变换的原点

二维变换的参考点是十分重要的,例如如下旋转的后果就大不相同:

当然,有一种非凡的变换除外。那就是平移变换,无论原点是什么其变换的后果都是没有变动的。

复合变换

复合变换的矩阵可通过将几个独自的变换矩阵相乘而失去,这就意味着任何仿射变换的序列均可存储于单个的 Matrix 对象中。

须要留神的是,复合变换是有程序的,一般说来,先旋转、再缩放、而后平移,与先缩放、再旋转、而后平移是不同的。

逆矩阵

能够依据肯定的运算求出某个矩阵的逆矩阵,这个矩阵能够用来求出新的坐标点在原坐标系的地位。但须要留神的是,并非所有矩阵都是可逆的,可逆矩阵要求是非奇怪矩阵。

小结

矩阵运算其实是十分根底的数学知识,在图形学中利用得还是十分宽泛的,但大学学的时候往往不晓得干嘛用,当初用的时候却又忘了啥原理了。本文这里只是介绍了一些矩阵运算的基本概念,具体具体的内容能够参考下老师(lezijie007,暗号 1024)的参考资料。

正文完
 0