我有许多不同大小的SVG形状,我需要以不同的角度动态旋转它们。我想使用矩阵将它们居中旋转,但我在计算矩阵中的e和f时遇到了问题。如何计算矩阵(a、b、c、d、e、f)中的e和f?我有一个角度,但不知道如何计算新位置,所以它看起来像是居中旋转了。这是一个我已经旋转了45度的示例形状:
<rect x="0" y="0" width="50" height="50" style="stroke: #3333cc;fill:none;" transform="matrix(1,0,0,1,100,100)"></rect>
<rect x="0" y="0" width="50" height="50" style="fill: #3333cc" transform="matrix(0.707,-0.707,0.707,0.707,100,100)"></rect>
matrix()
而不是rotate(angle, cx,cy)
有什么原因吗? - Paul LeBeau(0,0)
дёәдёӯеҝғзҡ„<rect>
пјҢ然еҗҺдҪҝз”Ёrotate(degree)
е’Ңtranslate(x,y)
гҖӮиҝҷз§Қж–№жі•е§Ӣз»Ҳжңүж•ҲпјҢиҖҢдё”жҜ”matrix(....)
жӣҙжҳ“дәҺйҳ…иҜ»гҖӮ - Alvin K.rotate(degree offset-x offset-y)
其中offset-x
= 宽度/2 &offset-y
= 高度/2。请查看文档,matrix(...)
相当于rotate()
和translate()
的组合。换句话说,无论您使用哪种方法,都会得到相同的旋转效果。 - Alvin K.