Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.9k views
in Technique[技术] by (71.8m points)

css关于matrix2d变换的问题

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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


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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...