【发布时间】:2015-07-16 06:20:26
【问题描述】:
我有许多不同大小的 svg 形状,我必须以不同的角度动态旋转它们。我想使用矩阵将它们集中旋转,我在计算矩阵的 e、f 时遇到了问题。如何计算矩阵中的 e,f (a,b,c,d,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)有什么原因吗? -
诀窍是绘制以原点
(0,0)为中心的<rect>,然后使用rotate(degree)和translate(x,y)。与matrix(....)相比,始终有效且更易于阅读 -
@PaulLeBeau 我想学习机制,旋转如何在矩阵中工作
-
@AlvinK。我仍然需要使用矩阵来解决它
-
rotate(degree offset-x offset-y)其中offset-x= 宽度/2 &offset-y= 高度/2。检查docsmatrix(...)是否等同于rotate()和translate()。换句话说,无论你使用一个或另一个,都相当于相同的轮换。
标签: javascript matrix svg