我想在Raphael JS 2中应用或“烘焙”几个路径的转换,以便我可以将它们组合成一条路径。
这是一个示例路径,我希望将“transform”属性应用于所有“d”坐标。
<path style="" fill="#000000" stroke="none" d="M150,-265C182,-275,171,-220,180,-194L178,-194C181,-192,180,-185,181,-180C211,-169,282,-173,306,-166C308,-169,316,-171,315,-165C268,-157,225,-148,184,-137C188,-118,186,-96,190,-79L282,-131C289,-131,296,-135,297,-126C293,-118,271,-105,236,-80C190,-48,155,-20,125,-6C112,-15,115,-34,111,-51C121,-70,108,-107,107,-133C70,-132,-5,-126,0,-157C18,-170,39,-181,64,-191C75,-190,92,-181,100,-185C99,-198,95,-211,89,-225Z" transform="matrix(0.1389, 0, 0, 0.1389, 291.91, 235.465)" stroke-width="7.199999999999999">
据我所知,svg-edit框架可以将路径坐标转换为绝对位置,并删除过程中的变换矩阵。
一些相关的问题,我无法得到答案:
答案 0 :(得分:7)
这是一个适用于所有变换的jsFiddle:http://jsfiddle.net/ecmanaut/cFSjt/
Raphael可能会暴露我自己填充的部分或全部工具,但如果没有,这些工具就可以很好地完成。如果您的需求也包含更多非路径元素(例如组,rects,圆形,省略号等),请先将它们转换为路径元素(例如,使用pathify)。
答案 1 :(得分:0)
可以在这个jsFiddle:http://jsfiddle.net/X6YNm/1/
中找到部分解决方案//include whoa font, and raphael
paper = Raphael('holder');
var text = paper.print(300, 50, 'Foo', paper.getFont('whoa'), 50, 'baseline');
var path = new Array();
for ( var i = 0; i < text.length; i ++ ) {
path[i] = paper.path(Raphael.pathToRelative(text[i].attr('path')));
path[i].attr({ fill: 'red' }).translate(i * 250, 300);
}
它根据原始集中的每个字符创建一个新路径。但是,小提琴并没有正确地区分人物。
关于raphael google群组的一些相关讨论:这里有一些谷歌小组讨论:https://groups.google.com/d/msg/raphaeljs/OP29oelR5Eg/zPi5m6rjsvIJ