【发布时间】:2014-06-10 11:12:00
【问题描述】:
我是 Snap.svg 和 SVG 的新手,并且正在尝试转换(可以在 here 找到一个说明性的 plunk)。基本上我正在尝试根据其配置移动、缩放和旋转形状。这是我迄今为止发现的:
- 使用rotate(angle, x, y) 可以围绕一个点旋转
- 没有直接的变换方法来围绕一个点进行缩放,但可以按照“SVG Essentials”中的描述来完成
但是,结合这些变换并没有给我预期的结果 - 我预期的计算形状中心与渲染中心不同。谁能给我一些关于如何正确地将这些转换组合在一起的指示?
问候, 安迪
【问题讨论】:
-
你能包括你的方法是计算一个变换对象的中心吗?如果您想要转换对象的中心,我可能会使用 element.getBBox().cx & cy (或者如果转换可能是 element.getBBox(1))。我也会把它分解成一个更小的块来理解它。很难理解你的问题是你的变换是错误的,还是你的中心不是你想象的那样。
-
好吧,plunk 中的实际代码非常小——正如你所见,我从初始坐标计算中心,这并不难,因为为了简单起见,我存储了宽度和高度.顺便说一句,我的经验是 element.getBBox() 不是一个真正可靠的,有时我会得到明显错误的数字。这就是我硬编码宽度和高度的原因。这是另一个需要解决的问题......