为什么序列对矩阵转换很重要,比如旋转和平移变换同时进行
Why is the sequence important for matrix transitions like rotate and translate transform at the same time
我想在旋转和平移的同时动画一个matrix3d。奇怪的是我得到了完全不同的结果把旋转放在第一位或者把平移放在第一位。我有两把小提琴来展示它们的区别。我不明白。
http://jsfiddle.net/wetlip/2nuQu/旋转前翻译
http://jsfiddle.net/wetlip/Z3MTX/旋转前平移
var el = document.getElementById("aa2");
var matrix = new MSCSSMatrix(el.style.transform);
matrix = matrix.rotateAxisAngle(0, 1, 0, 85);
matrix = matrix.translate(300, 0, 0);
el.style.transform = matrix;
给出与
完全不同的结果var el = document.getElementById("aa2");
var matrix = new MSCSSMatrix(el.style.transform);
matrix = matrix.translate(300, 0, 0);
matrix = matrix.rotateAxisAngle(0, 1, 0, 85);
el.style.transform = matrix;
这些操作是通过矩阵乘法应用的,而矩阵乘法是不可交换的。http://en.wikipedia.org/wiki/Matrix_multiplication
围绕原点旋转。
如果你想旋转一个不在原点的对象,你必须首先将它平移到原点,旋转它,然后再将它平移回来。
如果你旋转一个不在原点的对象,你实际上是以一种意想不到的方式移动和旋转它。
相关文章:
- 使用KineticJS变换(移动/缩放/旋转)形状
- 多点触摸平移缩放在javascript中同时旋转
- html5画布变换和缓存渐变、曲线和旋转
- CSS3 变换从 360 度旋转到 0 度
- 画布:如何完成平移、倾斜、旋转..仅在一个转换语句中
- SVG:反转父变换上的子对象旋转
- 变换旋转+IE9/10故障
- R-T矩阵由旋转和平移得到,没有临时矩阵
- CSS旋转和平移转换会产生意想不到的结果
- CSS3变换使用鼠标位置旋转
- 使用动画中的Step函数来变换和旋转元素
- CSS3变换使用鼠标位置旋转-第二阶段
- svg将矩阵表示法转换为旋转/平移
- 使用javascript围绕某个点旋转元素(不使用变换原点)
- 变换旋转和翻转效果- CSS3和jQuery
- 如何计算(SVG) X/Y坐标的平移和旋转(在JS/D3.js)
- 如何动画变换:旋转(Xdeg);
- 得到旋转平移后的图像坐标点
- 为什么序列对矩阵转换很重要,比如旋转和平移变换同时进行
- 尝试旋转和变换SVG路径-我需要三角计算