在图形学中,矩阵的计算不可避免,直观方便,这需要线性代数的基础。

矩阵图形变换

常见的二维变换有   旋转    缩放    扭曲    平移    四种

而这些几何运算则可以转换为一些基本的矩阵运算:

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

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

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

变换的原点

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

当然,有一种特殊的变换除外。那就是平移变换,无论原点是什么其变换的结果都是没有变化的。

复合变换(多个变换化为一次变换)

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

需要注意的是,复合变换是有顺序的,一般说来,先旋转、再缩放、然后平移,与先缩放、再旋转、然后平移是不同的。(与矩阵的运算相关)

逆矩阵

可以根据一定的运算求出某个矩阵的逆矩阵,这个矩阵可以用来求出新的坐标点在原坐标系的位置。但需要注意的是,并非所有矩阵都是可逆的,可逆矩阵要求是非奇异矩阵。

参考资料:二维图形的矩阵变换(一)——基本概念_weixin_34390105的博客-CSDN博客

线性代数:矩阵图形变换相关推荐

  1. 麻省理工大学线性代数1806(2)消元法及矩阵消元法 矩阵行变换、列变换 置换矩阵 逆矩阵 如沐春风、如饮甘露、醍醐灌顶的线性代数

    目前为止发现的最适合人工智能的最简易.最深刻的线性代数课程 麻省理工公开课:线性代数http://open.163.com/special/opencourse/daishu.html 只要你会数学中 ...

  2. python画三维几何图形拼成的图案_2D平面中关于矩阵(Matrix)跟图形变换的讲解...

    在二维平面上,常用的有以下三种基本的图形变化: 1)Translation 2)Scale 3)Rotation 在Android的开发中,我们也经常会用到这样的一些图形变换,尤其是我们在写自定义Vi ...

  3. 图形变换中涉及到的数学知识(向量叉乘、矩阵相乘、齐次坐标)

    文章目录 1. 向量 1.1 点乘 1.2 叉乘 2. 矩阵 3. 齐次坐标 1. 向量 1.1 点乘 两个n维向量点乘: 二维向量的点乘:向量的模长相乘再乘以夹角余弦值. 点乘的结果是一个数值(标量 ...

  4. 图形学(8)二维三维图形变换

    本模块内容绝大部分是在慕课上看中国农业大学网客时的笔记,因此算作转载,在此鸣谢赵明.李振波两位老师,感谢他们录制该门课程供大家学习! 在使用计算机处理图像时,我们不可避免对图形的位置.大小.形状等进行 ...

  5. WebGL简易教程(五):图形变换(模型、视图、投影变换)

    文章目录 1. 概述 2. 详论 1) 模型变换 (1) 平移变换 (2) 缩放变换 (3) 旋转变换 (4) 组合变换 2) 视图变换 (1) 原理 (2) 推导 3) 投影变换 (1) 透视投影 ...

  6. 图形变换核心原理(平移、缩放、旋转,拉伸)

    以Android为例,在使用Matrix进行绘图时有如下变换方法 // 缩放 public boolean preScale(float sx, float sy, float px, float p ...

  7. 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等

    接上文 计算机图形学 学习笔记(六):消隐算法:Z-buffer,区间扫描线,Warnock,光栅图形学小结 在图形学中,有两大基本工具:向量分析,图形变换.本文将重点讲解向量和二维图形的变换. 5. ...

  8. webgl_图形变换(旋转,平移,缩放)

    平移 平移一个三角形,你需要对顶点坐标的每个分量(x和y),加上三角形在对应轴(如X轴或Y轴)上平移的距离.比如,将点p(x, y, z)平移到p'(x', y', z'),在X轴.Y轴.Z轴三个方向 ...

  9. 《Real Time Rendering》第四章 图形变换

    图形变换是一个将例如点.向量或者颜色等实体进行某种转换的操作.对于计算机图形学的先驱者,掌握图形变换是极为重要的.有了他们,你就可以对象.光源以及摄像机进行定位,变形以及动画添加.你也可以确认所有的计 ...

最新文章

  1. halcon 形状匹配
  2. AlertDialog 点击空白处、返回按钮 行为
  3. TCP/IP协议:概述
  4. Fragment创建添加切换和对应底部导航(二)
  5. find 是区分大小写的。对于不区分大小写的写法(转载)
  6. This relative module was not found ./cptable webpack
  7. jsp页面路径问题(404)
  8. java跨库调用存储_java-调用spring数据其余存储库方法不会返回...
  9. 记录一下ListItem类的常用的方法
  10. 自己在使用的漢語辭典
  11. LINUX下三个内核文件详解(vmlinuz/initrd.img/System.map)
  12. SQL最全基础教程(有本事别看啊!)
  13. openGL 例子:创建一个二十面体
  14. Python实现cosx函数(泰勒公式)
  15. java 计算父亲节_写了一个简单的计算父亲节母亲节等日期的方法
  16. 猫九先森教你如何优雅的玩
  17. [R语言]RMarkdown: 入门与操作
  18. 不同IP网段的PLC进行S7通信(PUT_GET)的具体步骤
  19. CC2530基础实验:(2)外部中断控制LED亮灭
  20. ubuntu命令 图片 壁纸_一个命令安装旧版Ubuntu发布的壁纸

热门文章

  1. 2016太原网络营销师讲百度竞价(SEM)如何设计百度网盟账户?
  2. 客户端缓存和服务器缓存处理
  3. mybatis返回数据类型为map,值为null的key没返回
  4. 小说源码seo利于优化模板两套带采集规则
  5. RobotArtl离线编程——活塞装配之打磨、去毛刺及抛光加工处理
  6. “5W2H”+“人、货、场“分析思路,教你如何拆解新零售运营
  7. 中点分割裁剪算法介绍 (简单易懂)
  8. 泰波那契数列-大数相加
  9. 1.输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
  10. “全民来答题”隐私政策