我尝试创建一些箭头,所以我需要将一个矩形和两个三角形分组然后只是克隆这个东西。以下是我尝试这样做的方法:
var paper = Raphael("arrows", 960, 100);
var r = paper.rect(10, 10, 10, 50);
r.attr({fill: 'black'})
var p1 = paper.path("M5,10L15,0L25,10Z")
p1.attr({"stroke-width": 1, fill: "black"});
p2 = p1.clone();
p2.transform("t0,60r180");
st = paper.set();
st.push(r, p1, p2);
ar2 = st.clone();
ar2.transform("t30,0");
问题是这个p2转换的三角形没有被复制,或者至少我无法在克隆的箭头中看到它。 发表于jsfiddle:http://jsfiddle.net/empirik/rFuVy/1/
答案 0 :(得分:0)
转换后的三角形不包含在克隆ar2中。
如果您只需要完成箭头,请在函数中添加以下行:
var p3 = p2.clone();
p3.transform("t30,60r180");
答案 1 :(得分:0)
我解决了您的问题,如果您愿意,可能需要更改箭头的大小。但最好的方法是绘制 path
并克隆路径,而不是创建3种不同的形状并将其推入SET
。
以下是代码:
$(function(){
var paper = Raphael(0,0, 960, 100);
var path = paper.path("M 20 20 L 35 5 50 20 43 20 43 80 50 80 35 95 20 80 27 80 27 20z").attr("fill", "black");
path2 = path.clone();
path2.transform("t50, 0");
});
您还可以查看演示here