2D变换方法translate()、scale()、rotate()、skew()与matrix()的关系举例介绍。

一、介绍

2D变换方法:

    • translate():根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动。
    • rotate():在一个给定度数顺时针旋转元素。负值是允许的,这样是元素逆时针旋转。(绕着中心点旋转)
    • scale():元素按比例缩放,比例取决于宽度(X轴)和高度(Y轴)的参数。(缩放功能与中心点的位置有关)
    • skew():X轴和Y轴倾斜一定角度。

matrix():2D变换方法合并成一个。有六个参数,包含旋转,缩放,移动(平移)和倾斜功能。

CSS3 transform 的 matrix() 方法如下:

transform: matrix(a,b,c,d,e,f);

二、关系与举例

1、matrix()与translate()偏移功能

matrix(a,b,c,d,e,f)实现偏移,只由e、f这两个参数决定。

参数e决定水平偏移量,f决定垂直偏移量。

eg:

transform: matrix(1, 0, 0, 1, , )就等同于transform: translate(30px, 30px)

即:向右偏移30px的同时向下偏移30px

2、matrix()与scale()缩放功能

matrix(a,b,c,d,e,f)实现偏移,只由a、d这两个参数决定。

参数a决定水平缩放量,d决定垂直缩放量。即:X轴(宽度)缩放a倍,Y轴(高度)缩放d倍。

eg:

transform: matrix(, 0, 0, , 0, 0)就等同于transform: scale(2, 3)

即:元素宽度变为原来的2倍,高度变为原来的3倍

3、matrix()与rotate()旋转功能

matrix(a,b,c,d,e,f)实现旋转(假设角度为θ),对应方法如下:

matrix(cosθ,sinθ,-sinθ,cosθ,0,0)
eg:

transform: matrix(0.866025,0.500000,-0.500000,0.866025,0,0)就等同于transform:rotate(30deg)

即:以中心点为旋转点,顺时针旋转30度

4、matrix()与skew()倾斜功能

matrix(a,b,c,d,e,f)实现倾斜,与b、c两个参数有关。

b决定Y轴倾斜程度,c决定X轴倾斜程度,对应方法如下:

matrix(1,tan(θy),tan(θx),1,0,0)
eg:
matrix(1, 2.237161, 2.237161,1,0,0)就等同于transform:skew(20deg,20deg)
即:元素在X轴上倾斜20度和Y轴上倾斜20度。
												

matrix()方法与translate()、scale()、rotate()、skew()方法的关系的更多相关文章

  1. CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)

    CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)   在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾 ...

  2. CSS3 transform 属性详解(skew, rotate, translate, scale)

    写这篇文章是因为在一个前端QQ群里,网友 "小豆豆" (应他要求要出现他的网名......) ,问skew的角度怎么算,因为他看了很多文章还是不能理解skew的原理.于是,我觉得有 ...

  3. CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)(转载)

    在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾斜.移动这四种类型的变形处理,本文将对此做详细介绍. 一.旋转 rotate 用法:transform: rotate(45 ...

  4. CSS动画:Transform中使用频繁的scale,rotate,translate动画

    动画中,skew只是transform中的一种形式的动画,我们还可以学习scale,rotate,translate.这是目前使用比较频繁的属性动作. 1.scale动画的定义:(单位数值) scal ...

  5. 转:自定义控件三部曲之动画篇——alpha、scale、translate、rotate、set的xml属性及用法

    第一篇: 一.概述 Android的animation由四种类型组成:alpha.scale.translate.rotate,对应android官方文档地址:<Animation Resour ...

  6. Animation 动画详解(一)——alpha、scale、translate、rotate、set的xml属性及用法

    一.概述 Android的animation由四种类型组成:alpha.scale.translate.rotate,对应android官方文档地址:<Animation Resources&g ...

  7. [转]Animation 动画详解(一)——alpha、scale、translate、rotate、set的xml属性及用法

    转载:http://blog.csdn.net/harvic880925/article/details/39996643 前言:这几天做客户回访,感触很大,用户只要是留反馈信息,总是一种恨铁不成钢的 ...

  8. android.view.animation(1) - alpha、scale、translate、rotate、set的xml属性和用法(转)

    一.ScaleAnimation ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, floa ...

  9. 自定义控件三部曲之动画篇(一)——alpha、scale、translate、rotate、set的xml属性及用法

    前言:这几天做客户回访,感触很大,用户只要是留反馈信息,总是一种恨铁不成钢的心态,想用你的app,却是因为你的技术问题,让他们不得不放弃,而你一个回访电话却让他们尽释前嫌,当最后把手机号留给他们以便随 ...

随机推荐

  1. 自己整理的openresty安装步骤

    这几天一直在研究对webapi的限流和名单的问题,于是看了开涛博客的方案,于是就用到了openresty,一个把Nginx和lua集成的东西. 下面就是整理的安装方案(简单使用基本可以这么安装) 下载 ...

  2. angular多页面切换传递参数

    <!DOCTYPE html> <html lang="en" ng-app="myapp"> <head> <met ...

  3. php调用java

    PHP调用JAVA方式 1.     背景 在开发招商银行信用卡分期付款功能过程中,在支付成功之后需要对银行的返回数据进行签名验证,因签名加密方式招商银行是不提供的,只提供了相应的JAVA验证类测试例 ...

  4. 快速压缩PNG文件在线工具

    https://tinypng.com/ 直接拖移要压缩文件即可

  5. 通过PHP前端后台交互/通过ajax前端后台交互/php基础传输数据应用/简单的留言版/简单的注册账户/简单的登录页/

      前  言  PHP     通过上一篇博客,注册账号与登录页面--前后台数据交互  跳转转到index主页,接下来进入主页留言板功能,通过ajax向后台传输数据,同时发表留言. 具体的内容分析如下 ...

  6. C# 通过Bartender模板打印条码,二维码, 文字, 及操作RFID标签等。

    1.在之前写的一篇文章中, 有讲到如何利用ZPL命令去操作打印里,  后面发现通过模板的方式会更加方便快捷, 既不用去掌握ZPL的实现细节, 就可以轻松的调用实现打印的功能. 解决方案: 1.网络下载 ...

  7. Win10 & Linux Docker 安装使用

    Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. 一.Windows Docker 安装 1.安装 需要的条件为: 64bit Windows 10,开启Hype ...

  8. 详解 RAC 中各种IP和监听的意义

    一.SCAN 概念 SCAN(Single Client Access Name)是 Oracle从11g R2开始推出的,客户端可以通过 SCAN 特性负载均衡地连接到 RAC数据库 SCAN 最明 ...

  9. php使用openssl进行数字签名验证

    <?php /** * Created by PhpStorm. * User: hanks * Date: 6/2/2017 * Time: 6:03 PM */ /* [数字签名] 使用完全 ...

  10. java网络编程之socket

    网络编程是什么 网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机.数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后接受另外一个设备反馈的数据. ...