Path 拉斐尔的形状可以相互转换吗?

Path 拉斐尔的形状可以相互转换吗?,path,raphael,transform,shapes,Path,Raphael,Transform,Shapes,我有一个形状 var a = paper.rect(10,10,50,20); 我想把这个形状变成 var b = paper.circle(10,10,20); 有没有办法将这些内置的形状转换成另一个。我知道路径可以按照您的意愿进行变换,但形状也可以变换吗?我认为这是不可能的,除非您只是淡出一个形状,然后淡入另一个形状。原因是,在转换过程中的某个时间点,形状既不是矩形也不是圆形,而SVG中的任何单个动画形状在整个动画过程中都必须保持相同的形状。我认为这是不可能的,除非您只是淡出一个形状,然

我有一个形状

var a = paper.rect(10,10,50,20);
我想把这个形状变成

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

有没有办法将这些内置的形状转换成另一个。我知道路径可以按照您的意愿进行变换,但形状也可以变换吗?

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

只要有一点创意,就可以做到这一点。如果宽度、高度和r(半径)都相同,则矩形可以是圆形。然后将矩形变换为“圆”变成:

p=Raphael(10,50600300);
myrect=p.rect(50,50300150,0).attr({“fill”:“cyan”});
动画({“宽度”:25,“高度”:25,“r”:25},3000);


JSfiddle:

只要有一点创意,就可以做到这一点。如果宽度、高度和r(半径)都相同,则矩形可以是圆形。然后将矩形变换为“圆”变成:

p=Raphael(10,50600300);
myrect=p.rect(50,50300150,0).attr({“fill”:“cyan”});
动画({“宽度”:25,“高度”:25,“r”:25},3000);


JSfiddle:

我相信你可以!在本例中,共享正在转换,可能我没有正确解释。看看这个。最初,我使用路径绘制了一个矩形,然后它转换为一个圆形路径。现在我想在不使用路径的情况下实现这一点。我想把矩形形状直接转换成圆形。我怎么能做到?我相信你能!在本例中,共享正在转换,可能我没有正确解释。看看这个。最初,我使用路径绘制了一个矩形,然后它转换为一个圆形路径。现在我想在不使用路径的情况下实现这一点。我想把矩形形状直接转换成圆形。我该怎么做?谢谢你的回答。那就得用路径了。谢谢你的回答。必须使用路径来完成。上面的代码有效。但是,我认为“r”值应该是高度/宽度的一半。所以如果高度=25,宽度=25,那么r=12.5。JSFIDLE将其与r as 25配合使用,但我注意到旧版IE中存在一些问题。上面的代码工作正常。但是,我认为“r”值应该是高度/宽度的一半。所以如果高度=25,宽度=25,那么r=12.5。JSFIDLE将其与r as 25配合使用,但我注意到旧版IE中存在一些问题。