【问题标题】:svg.js rotation center of clipped elementsvg.js 被裁剪元素的旋转中心
【发布时间】:2014-05-07 02:57:56
【问题描述】:

Svg.js 旋转动画works great 因为它默认使用元素的中心点,即使元素从一个点移动到另一个点,但现在我在添加剪切路径时是having trouble到图像,因为中心点仍然是原始图像的中心,即使它在剪切路径之外。我想改用剪切路径的中心点。我能找到的最接近的是a question about d3.js。

var rect = draw.rect(60,60)
var picture = draw.image(img.jpg).clipWith(rect)
picture.animate(1000).rotate(360)

如何让它在 svg.js 中工作?

【问题讨论】:

  • 你能发个小提琴什么的吗?目前还不清楚发生了什么。

标签: javascript svg svg.js


【解决方案1】:

您可以将旋转中心传递给rotate() 方法。您所要做的就是计算出剪辑矩形的中心在哪里,然后将其传递进去。结果是 90,80。

this.animate(1000).rotate(
    360 + currentRotation, 90,80
)

Demo here

由于某种原因,它第一次无法正常工作,但之后就可以正常工作。这似乎是 svg.js 中的一个错误。

【讨论】:

  • 经过大量实验jsfiddle.net/heyzeuss/evL6v/18,我发现对象 SVG.rbox 可以让我获得中心点,但只是在动画开始时。如果我希望被剪裁的元素从点“A”移动到点“B”,它就不再围绕自己的中心旋转。旋转中心应该随元素移动,如问题的第一个示例所示。
  • 刚才提到的错误已修复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 2021-10-01
  • 2015-05-28
  • 1970-01-01
相关资源
最近更新 更多