我从 SVG 文件中的元素解析了一个转换属性,例如rotate(45,30,50)
我想将其转换为矩阵形式。
我搜索了它,我所能找到的只是rotate(a)
没有坐标,看起来像这样[cos(a) sin(a) -sin(a) cos(a) 0 0]
谁能告诉我如何改变rotate(angle, x , y)
为矩阵形式?
旋转矩阵只能描述关于 (0, 0) 的旋转,因此您必须使用平移。
EDIT See 这个 JSFiddle http://jsfiddle.net/raffaele181188/Cfdcn/。它绘制一个由偏移量、宽度和高度定义的矩形,并围绕枢轴点旋转。有趣的部分是最后 10 行左右,其中的值offsetX
and offsetY
被计算。一旦有了这些,您就可以构建平移和旋转矩阵。然后,只需将平移乘以旋转,就可以得到最终结果。不幸的是,Javascript 不提供任何矩阵功能,所以如果您不提供代码,这就是我能做的
翻译矩阵是如何制作的
1 0 offsetX
0 1 offsetY
0 0 1
旋转矩阵是如何制作的
cos -sin 0
sin cos 0
0 0 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)