Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 拉斐尔JS中两个百分点之间的界限_Javascript_Raphael - Fatal编程技术网

Javascript 拉斐尔JS中两个百分点之间的界限

Javascript 拉斐尔JS中两个百分点之间的界限,javascript,raphael,Javascript,Raphael,我试图在两个基于百分比定位的圆之间绘制一条路径。 他们这样定位的原因是我缩放纸张并希望保持其位置 这对圆很有效,但当我尝试绘制这样的路径时: paper.path("M55% 70%L25% 20%") 我得到的只是: Error: Problem parsing d="M,0,0" 我怎么知道的 另外,有没有一种方法可以在不手动计算的情况下获取元素的百分比位置 谢谢 更新: 我最终解决了我的问题,但采用了一种相当手动的变通方式: var canvasX = $('#worldmap svg

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

这对圆很有效,但当我尝试绘制这样的路径时:

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

不用说,这并不好。

SVG中没有任何迹象表明这种语法是允许的。事实上,我有点惊讶,它允许像圆心这样的东西……但我想你是对的。

但是,如果执行缩放,位置将不会保持固定,正如您在本jsfiddle中所看到的:

如何更准确地绘制圆?paper.circle('50%,'50%,'20%);