博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css3 matrix()矩阵
阅读量:5046 次
发布时间:2019-06-12

本文共 1291 字,大约阅读时间需要 4 分钟。

参数

  matrix()有六个参数:matrix(a,b,c,d,e,f);

  这六个参数组成的矩阵与原坐标矩阵相乘计算坐标;

计算

  获取当前元素的所有像素点坐标并计算

  x' = ax+cy+e

  y' = bx+dy+f

简单例子

 偏移

    坐标公式应该为:x' = x + 偏移量;     y‘ = y + 偏移量

   套用上面的公式那么应该:a = 1; b = 0;c = 0;d = 1; e = x偏移量;f = y偏移量

   matrix(1, 0, 0, 1, x偏移量, y偏移量)

   缩放

    x' = x*x缩放倍数 ;    y’ = y*y缩放倍数

   a = x缩放倍数 ; b = 0; c = 0;   d = y缩放倍数 ; e = 0; f = 0

   matrix(x缩放倍数, 0, 0, y缩放倍数, 0, 0);

   如:缩小一半,    matirx(0.5,0,0,0.5,0,0);

 倾斜

   x' = a*x + c*y ;    y' = b*x +d*y

   a = cosθ; b = sinθ; c = sinθ; d = cosθ; e = 0; f = 0;

   matrix(cosθ, sinθ, sinθ, cosθ, 0, 0);

   如:要水平倾斜30度,只需计算出cos30°和sin30°的值,作为参数a和c的值        matrix(0.866,0,0.5,1,0,0);

   垂直倾斜同理;

 旋转

   只需:水平倾斜角度 = -垂直倾斜角度

   如:要顺时针旋转30度,        matrix(0.866,0.5,-0.5,0.866,0,0);

上面的都可以用CSS3 transform提供的translate()  rotate()  scale() 方法实现,但有些效果不能实现。(如:镜像)

  水平镜像:(y坐标不变,x坐标变负)

  所以:a=-1; b=0; c=0; d=1; e=0; f=0;简化得:

  x' = -x;
  y' = y

 

  垂直镜像:(x坐标不变,y坐标变负)

  所以:a=1; b=0; c=0; d=-1; e=0; f=0;简化得:

  x' = x;
  y' = -y

 

  水平镜像+倒立:(y坐标变负,x坐标变负)

  所以:a=-1; b=0; c=0; d=-1; e=0; f=0;简化得:

  x' = -x;
  y' = -y

 

  90度旋转+镜像:(x'=y,y'=x)

  所以:a=0; b=1; c=1; d=0; e=0; f=0;简化得:

  x' = y;
  y' = x

 

  -90度旋转+镜像:(x'=-y,y'=-x)

  所以:a=0; b=-1; c=-1; d=-0; e=0; f=0;简化得:

  x' = -y;
  y' = -x

  

  一些简单的参数实现的效果

  由于计算比较麻烦,对于tranform的其他方法能实现的,还是用那些方法。

 

转载于:https://www.cnblogs.com/seeks/p/7537983.html

你可能感兴趣的文章
android圆角View实现及不同版本号这间的兼容
查看>>
OA项目设计的能力③
查看>>
Cocos2d-x3.0 文件处理
查看>>
全面整理的C++面试题
查看>>
Activity和Fragment生命周期对比
查看>>
OAuth和OpenID的区别
查看>>
android 分辨率自适应
查看>>
查找 EXC_BAD_ACCESS 问题根源的方法
查看>>
国外媒体推荐的5款当地Passbook通行证制作工具
查看>>
日常报错
查看>>
list-style-type -- 定义列表样式
查看>>
hibernate生成表时,有的表可以生成,有的却不可以 2014-03-21 21:28 244人阅读 ...
查看>>
mysql-1045(28000)错误
查看>>
Ubuntu 编译出现 ISO C++ 2011 不支持的解决办法
查看>>
1.jstl c 标签实现判断功能
查看>>
Linux 常用命令——cat, tac, nl, more, less, head, tail, od
查看>>
超详细的Guava RateLimiter限流原理解析
查看>>
VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
查看>>
Halcon一日一练:图像拼接技术
查看>>
Swift - RotateView
查看>>