【问题标题】:Can raphaeljs shapes be transformed into one another?raphaeljs 的形状可以相互转换吗?
【发布时间】:2012-10-15 08:07:15
【问题描述】:

我有一个形状

var a = paper.rect(10,10,50,20);

我想把这个形状变成

var b = paper.circle(10,10,20);

有什么方法可以将这些内置形状相互转换。我知道路径可以随心所欲地变换,但形状也可以变换吗?

【问题讨论】:

  • 我相信你可以!在此示例中,共享正在转换raphaeljs.com/curver.html
  • 也许我没有正确解释。检查此fiddle。最初我使用路径绘制了一个矩形,然后它转换为圆形路径。现在我想在不使用路径的情况下实现这一点。我想将矩形直接转换为圆形。我该怎么做?

标签: path raphael transform shapes


【解决方案1】:

只要有一点创意,你就可以做到这一点。如果宽度、高度和 r(半径)都相同,则矩形可以是圆形。那么把一个矩形变成一个“圆”就变成了:

p=Raphael(10, 50, 600, 300); myrect=p.rect(50,50, 300,150,0).attr({"fill":"cyan"}); myrect.animate({"width":25,"height":25, "r":25}, 3000);

JSfiddle:http://jsfiddle.net/s1pz6Lzc/30/

【讨论】:

  • 上面的代码有效。但是,我相信“r”值应该是高度/宽度的一半。因此,如果 height=25 且 width=25 则 r=12.5。 jsfiddle 可以在 25 时使用 r,但我注意到旧版 IE 中存在一些问题。
【解决方案2】:

我认为这是不可能的,除非您只是淡出一种形状并淡入另一种形状。原因是在转换过程中的某个时间点,形状既不是矩形也不是圆形,而 SVG 中的任何单个动画形状都必须在整个动画过程中保持相同的形状,我相信。

【讨论】:

  • 感谢您的回答。然后必须使用路径。
猜你喜欢
  • 2012-06-05
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
  • 2022-07-01
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多