问答

css关于matrix2d变换的问题

作者:admin 2021-05-09 我要评论

如图 矩阵下面[0 0 1]一行有什么用,为什么是[0 0 1]不是[0 0 0] ### [0, 0, 0] 的话效果就和二阶矩阵一样了,二阶矩阵不能计算平移,实际上就是 e 、 f 两个参...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

如图
image.png
矩阵下面[0 0 1]一行有什么用,为什么是[0 0 1]不是[0 0 0]

###

[0, 0, 0] 的话效果就和二阶矩阵一样了,二阶矩阵不能计算平移,实际上就是 ef 两个参数会丢失,最终结果就是 2D 变换中使用较为频繁的 translate效果没法用矩阵表示。
还有一个更为通俗也更为抽象的表述——仿射变换其实是 3D 变换在 2D 坐标系的投影,所以需要使用三阶矩阵。由于 2D 显示不需要 z 参数,矩阵第三行前两个参数可以是任何值,包括 0;第三行第三个参数则可以是任何非 0 值,那么 1 应该是最佳选择了。这样说很抽象,但是看到下图1你就明白了:
维基百科:仿射变换-平移


  1. 如何通俗地讲解「仿射变换」这个概念? - 马同学的回答 - 知乎 ?
###

没有人回答,我自己自问自答一下。平面坐标系做出的变换只能是基于原点的图形变化,放大或者缩小,并不能脱离原点的位移变换。所以需要2d图形放到空间坐标系中,通过空间坐标系基于原点的变换产生的高度为1的平行四边体的正上方的面形成脱离原点的位移,所以有了[x y 1](z为常量1,四边体的高度为1),[a c e b d f 0 0 1]可以看成是基于空间坐标系的基向量a,b,c经过几何变换后得到的向量(a b 0), (c d 0), (e f 1),最后所求的平行四边体高度为1,所以z轴的基向量c变换后的z坐标为1。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 请问下prometheus怎么进行自定义的按业

    请问下prometheus怎么进行自定义的按业

  • 节流函数为什么,点击无效,监听窗口大

    节流函数为什么,点击无效,监听窗口大

  • express访问静态资源失败

    express访问静态资源失败

  • IE 浏览器下 match 方法报错

    IE 浏览器下 match 方法报错

腾讯云代理商
海外云服务器