我正在尝试在两个基于百分比定位的圆圈之间绘制路径。 他们这样定位的原因是我缩放了纸张并希望保持其位置。
这适用于圈子,但是当我尝试绘制这样的路径时:
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));
毋庸置疑,这并不好。
答案 0 :(得分:1)
SVG PathData specification中没有任何迹象表明允许使用这种语法。实际上我有点惊讶它允许像圆圈的中心......但我想你是对的。
但是,如果您执行缩放,位置将不会保持固定,您可以在此jsfiddle中看到:http://jsfiddle.net/PUg8r/