在Raphael JS中划出两个百分点之间的界线

时间:2012-04-28 00:50:49

标签: javascript raphael

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

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

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));

毋庸置疑,这并不好。

1 个答案:

答案 0 :(得分:1)

SVG PathData specification中没有任何迹象表明允许使用这种语法。实际上我有点惊讶它允许像圆圈的中心......但我想你是对的。
但是,如果您执行缩放,位置将不会保持固定,您可以在此jsfiddle中看到:http://jsfiddle.net/PUg8r/