我有一个形状
var a = paper.rect(10,10,50,20);
我想把这个形状变成
var b = paper.circle(10,10,20);
有没有办法将这些内置形状相互转换。我知道路径可以随心所欲地变换,但形状也可以变换吗?
如果有一点创造力,你可以做到这一点。如果宽度、高度和 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/
我认为这是不可能的,除非您只是淡出一种形状并淡入另一种形状。原因是在转换过程中的某个时间点,形状既不是矩形也不是圆形,而 SVG 中的任何单个动画形状都必须在整个动画过程中保持相同的形状,我相信。