transform 属性之 matrix 方法其二

本文为解析 transform 属性系列的第三篇,未看前文的童鞋,阅读一下 第一篇第二篇,会对本文有更好的理解。

matrix 矩阵运算公式

x’ = a * x + c * y + tx
y’ = b * x + d * y + ty

详细运算过程请参考上一篇文章

matrix 实现 rotate

回顾一下 rotate 的定义:

rotate(degree)
rotate 方法用于将元素旋转一定的角度。当 degree 的值为正数时,顺时针旋转元素;为负值时,逆时针旋转元素。


旋转元素,可以想象将元素分为好多分散的点,把元素中包含的每一个点绕着元素中心旋转。单个点的操作就类似于下图中的 A 点旋转一定角度后变为了 B 点,将旋转后所有点组合,就是旋转后的元素了。
rotate-point
由上图可见,给最初的角度 α 增加旋转角度 θ,A 点就由之前的位置变换到了 B 点。由此可以得出这样的信息:

  • 点 A 是已知的
  • 变换前后,线段 OA 和 OB 是相等的
  • 旋转角度 θ 也是已知的
  • 点 B 是未知点

将问题抽象出来,即:已知圆上的点 A,求将点 A 旋转角度 θ 后新位置点 B 的坐标?

有一个经典的坐标系统可以用来处理上面这个问题,它就是极坐标系(极坐标系的详细介绍请咨询度娘)。将以上问题用极坐标系表示如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值