4

我正在尝试在基于百分比定位的两个圆圈之间绘制一条路径。他们这样定位的原因是我缩放纸张并希望保持他们的位置。

这适用于圆圈,但是当我尝试绘制这样的路径时:

paper.path("M55% 70%L25% 20%")

我得到的是:

Error: Problem parsing d="M,0,0"

我怎么知道这件事?

另外,有没有办法在不手动计算的情况下获取元素的百分比位置?

谢谢!

更新:

我最终解决了我的问题,但是以一种非常手动的解决方法:

var canvasX = $('#worldmap svg').width() / 100;
var canvasY = $('#worldmap svg').height() / 100;
mapCanvas.path("M" + Math.floor(parseFloat(from.attr("cx")) * canvasX) + " "
        + Math.floor(parseFloat(from.attr("cy")) * canvasY) + "L"
        + Math.floor(parseFloat(to.attr("cx")) * canvasX) + " "
        + Math.floor(parseFloat(to.attr("cy")) * canvasY));

不用说,这不是很好。

4

1 回答 1

1

SVG PathData 规范中没有表明允许这种语法。实际上,我有点惊讶它允许像圆心这样的东西......但我想你是对的。
但是,如果您执行缩放,则位置将不会保持固定,如您在此 jsfiddle 中所见:http: //jsfiddle.net/PUg8r/

于 2012-04-30T18:21:20.940 回答