加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

css3 matrix 2D矩阵和canvas transform 2D矩阵

发布时间:2020-12-14 23:53:00 所属栏目:资源 来源:网络整理
导读:一看到“2D矩阵”这个高大上的名词,有的同学可能会有种畏惧感,“矩阵”,看起来好高深的样子,我还是看点简单的吧。其实本文就很简单,你只需要有一点点css3 transform的基础就好。 p class="my_title"没有前戏,直奔主题 这六个参数分别控制不同的变换 a

一看到“2D矩阵”这个高大上的名词,有的同学可能会有种畏惧感,“矩阵”,看起来好高深的样子,我还是看点简单的吧。其实本文就很简单,你只需要有一点点css3 transform的基础就好。

<p class="my_title">没有前戏,直奔主题

这六个参数分别控制不同的变换

a 水平缩放

b 水平拉伸

c 垂直拉伸

d 垂直缩放

x 水平位移

y 垂直位移

可以运行下面的demo,改动对应的参数查看效果


  • 缩放:scale(sx,sy) 等同于 matrix(sx,sy,0);
  • 平移:translate(tx,ty) 等同于 matrix(1,tx,ty);
  • 旋转:rotate(deg) 等同于 matrix(cos(deg),sin(deg),-sin(deg),cos(deg),0);
  • 拉伸:skew(degx,degy)?等同于 matrix(1,tan(degy),tan(degx),0);

一目了然,matrix原始写法看起来更复杂一些,大家一般使用左边的快捷方式就好了。

其实矩阵基本上就上面这些内容,网上大部分介绍矩阵的教程一般都会搬出下面这张图来吓唬人

图1:

a c e分别和x y 1相乘并相加得出结果x' = ax + cy + e;

b d f分别和x y 1相乘并相加得出结果y' = bx + dy + f;

其中的x y是元素变换之前的中心点,即transform-origin的值,x' y'是元素变换之后的transform-origin值。

假设一个元素的中心点为100,100,将该元素向右平移200px,向下平移100px后,中心点坐标为:

x' =??ax + cy + e = 1*100 + 0*100 + 200 = 300

y' = 0*100 + 1*100 + 100 = 200

平移后的中心点坐标为300,200

图2:

图1的作用仅仅是告诉我们如何计算元素变换后的中心点,没什么特别的。?

?大家都知道css3 transform-origin默认是元素的中点,css3旋转就是绕着这个点转动,而canvas的transform的rotate方法是默认绕着canvas的原点(即左上角)旋转。


OK,以上就是2D矩阵的全部内容,对文中的公式建议自己做个demo测试一下以加深印象,否则看完一会准会忘记。

水平有限,有疏漏之处欢迎交流。

by: from?http://www.cnblogs.com/wangmeijian/p/4713722.html转载注明出处。

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读